|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Andrey Brindeew 2:5020/400 05 Jan 2003 19:27:31 To : Artem Chuprina Subject : Re: perldoc -f flock -------------------------------------------------------------------------------- On Sun, 5 Jan 2003 09:32:33 +0000 (UTC) Artem Chuprina <ran@ice.ru> wrote: > AP> Расскажите плиз про функцию flock. Как она работает если к файлу > AP> одновременно два клиента обращаются? Он откладывает на потом, потом > AP> записывает или вообще не пишет? Hу или как вообще? > > Кто первый встал, того и тапки. Второму в зависмости от переданных параметров > либо молча предлагается подождать (по умолчанию), то есть он сидит внутри > flock, пока не освободят файл, либо, если запросил неблокирующий вызов, > возвращают ошибку - дескать, файл пока занят. Если запросил LOCK_SH, то к > файлу можно будет ходить одновременно с другими такими же, поэтому эта > блокировка используется для чтения. Если LOCK_EX - ни с кем одновременно > работать не дадут. Используется для изменения файла. Да, и работает все это хозяйство по принципу светофора - если все соблюдают правила, то все нормально, а если объявится лихач, которому начхать на запрещающий сигнал светофора - то все, жди беды. :-) Иными словами, все, кто хочет получить доступ к данному файлу, должны использовать flock. -- WBR, Andrey Brindeew. "No one person can understand Perl culture completely" (C) Larry Wall. --- ifmail v.2.15dev5 * Origin: MTU-Intel ISP (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/3544930ab92d.html, оценка из 5, голосов 10
|