|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Yaroslav Tchayckovsky 2:5076/13.12 10 May 2002 15:37:12 To : Artem Chuprina Subject : Как правильно модифицировать файл? --------------------------------------------------------------------------------
08 Май 02 11:05, Artem Chuprina wrote to Yaroslav Tchayckovsky:
SG>>>>>> open F,"+<blabla";
SG>>>>>> flock (F,1);
SG>>>>>> #чтение данных в память
SG>>>>>> flock (F,2);
SG>>>>>> #Запись в тот же файл, замещая всё
SG>>>>>> close (F);
SG>>>>>> Правильно ли это?
AC>>>>> Hет. Очевидный deadlock при попадании в это место одного такого
AC>>>>> скрипта, когда другой находится в первой половине.
YT>>>> А как тогда правильно делать?
AC>>> Если ты собираешься лочить файл эксклюзивным локом, это надо делать
AC>>> сразу.
YT>> Сразу это когда именно? До его открытия что-ли?!
AC> Hет, сразу после. Вместо shared.
Может я совсем тормоз, но что-то не въеду.
Давай я попробую от корней пойти.
Формат flock такой:
flock(filehandle, operation);
operation:
$LOCK_SH = 1;
$LOCK_EX = 2;
$LOCK_NB = 4;
$LOCK_UN = 8;
$LOCK_SH=1 - SHARED LOCK ???
$LOCK_EX=2 - Exclusive lock нельзя писать в файл, можно читать.
$LOCK_NB=4 - ????
$LOCK_UN=8 - снять лок.
WBR,Yaroslav
np: silence (Winamp is not active ;-)
---
* Origin: Anchor Field Forever! (2:5076/13.12)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/32853cdb94ff.html, оценка из 5, голосов 10
|