Как заблокировать файл в Perl? - PullRequest
27 голосов
/ 29 августа 2008

Какой лучший способ создать блокировку файла в Perl?

Лучше ли скопировать файл или создать файл блокировки, чтобы установить блокировку и проверить блокировку файла блокировки?

Ответы [ 13 ]

0 голосов
/ 15 сентября 2009

Вот мое решение для чтения и записи в одном замке ...

open (TST,"+< readwrite_test.txt") or die "Cannot open file\n$!";
flock(TST, LOCK_EX);
# Read the file:
@LINES=<TST>;
# Wipe the file:
seek(TST, 0, 0); truncate(TST, 0);
# Do something with the contents here:
push @LINES,"grappig, he!\n";
$LINES[3]="Gekke henkie!\n";
# Write the file:
foreach $l (@LINES)
{
   print TST $l;
}
close(TST) or die "Cannot close file\n$!";
0 голосов
/ 29 августа 2008

flock создает блокировки файлов в стиле Unix и доступен на большинстве ОС, на которых работает Perl. Однако замки стада носят рекомендательный характер.

edit: подчеркнул, что стадо переносимо

0 голосов
/ 29 августа 2008

Используйте стадо Люк.

Редактировать: Это хорошее объяснение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...