Ŝlosado de dosiero

Ŝlosado de dosiero estas ebleco de programo diru al operaciumo, ke al iu malfermita de la programo dosiero bezonatas ne doni aliron por la aliaj programoj.

Ŝlosa dosiero estas dosiero kiu estadas por malebligi samtempan faradon de iuj agoj.

Ekzemple bezonatas ke ne pli ol unu ekzemplero de iu programo povu ruligi. Tiam la programo dum sia starto kreas la ŝlosan dosieron, kaj kiam la programo finas sian ruliĝon ĝi forigas la dosieron.

Sed dum starto, antaŭ ol krei la ŝlosan dosieron, la programo kontrolas ĉu ĝi jam ekzistas. Se jes do la alia ekzemplero de la programo jam ruliĝas, kaj ĉi tiu ekzemplero do rifuzas starti.

Dum uzado de ĉi tiu simpla skemo povas esti malagrablaĵoj:

  • Se la programo finiĝos nenormale ĝi ne forigas la ŝlosan dosieron, kaj tiam la programo plu ne povas starti.
  • Inter kiam la programo kontrolas ĉu ŝlosa dosiero jam ekzistas kaj kiam ĝi kreas la ŝlosan dosieron la alia ekzemplero de la programo povas starti, kaj tiam la du ekzempleroj ruliĝos.

Por solvi la problemojn estas speciala rimedo de operaciumo - ebleco ŝlosi diseron, do malfermi ĝin por uzo de nur unu ekzemplero de proramo. Operaciumo memoras, kiu ekzemplero de programo malfermis la dosieron, kaj ne permesas al la aliaj falfermi ĝin.

Tiam:

  • Se la ŝlosa dosiero jam ekzistas sed ne estas malfermita kaj ŝlosita do ĉi tio nenion signifas, eblas ĝin rekrei kaj daŭrigi siaajn aferojn.
  • Se iInter kiam la programo kontrolas ĉu ŝlosa dosiero jam ekzistas kaj kiam ĝi kreas la ŝlosan dosieron la alia ekzemplero de la programo startos, unu el la ekzempleroj nepre malsukcesos ŝlosi ŝlosan dosieron kaj komprenos ke jam estas ankoraŭ unu ekzemplero.

En Unikso-similaj sistemoj ŝlosaj dosieroj kutime estas en dosierujo /var/lock/ .