|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Artem Chuprina 2:5020/371.32 22 Aug 2000 13:17:58 To : Dmitry Popov Subject : Re: flock() -------------------------------------------------------------------------------- <Dmitry_Popov@p8.f117.n464.z2.fidonet.org> wrote: DP> опишиет пжалста как работает flock() и как это обойти под винТ ?? тк она DP> там не работает....а то имхо из за этого чат глючит... Запрашивает у системы лок файлового хендла на указанную операцию. Если файл для этой операции свободен (не залочен никем, если требуется LOCK_EX, и не залочен или залочен как LOCK_SH, если затребовано LOCK_SH), ему его дают. Если не свободен, в зависимости от того, было ли попрошено LOCK_NB, процесс замирает в flock'е, ожидая освобождения (по умолчанию, то есть если LOCK_NB не запрошено), либо сразу возвращается с ошибкой EWOULDBLOCK ("операция будет блокирована"), если было попрошено LOCK_NB. Лок сохраняется до выполнения flock с операцией LOCK_UN или закрытия файла, что раньше. Локи эти advisory, то есть программа, не озаботившаяся запросом лока, может делать с залоченным файлом все, что угодно. Более того, программа, озаботившаяся - тоже (то есть можно писать в файл, залоченный на LOCK_SH, последствия за свой счет). В NT надо обходить ее стандартными средствами (тут кто-то произносил что-то вроде Win32::Mutex). -- Счастливо! Ран. --- ifmail v.2.14.os-p7-tma3 * Origin: MemoNet (2:5020/371.32@fidonet) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/17121309cbc65.html, оценка из 5, голосов 10
|