|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Artem Chuprina 2:5020/371.32 07 Aug 2000 13:06:19 To : dima-pol@mtu-net.ru Subject : Re: Блокировка файлов в WIN98 -------------------------------------------------------------------------------- dpmnr> From: "Dmitriy Polahovskiy" <dima-pol@mtu-net.ru> dpmnr> окружение: dpmnr> Win98, сеть Ethernet, WEB cервер - виндусовые Apache и Perl 5.03. dpmnr> ситуация: dpmnr> CGI скрипт читает данные из файла, модифицирует и перезаписывает в dpmnr> файл. dpmnr> проблема: Я так понимаю, что перед записью в файл скрипт обязан dpmnr> убедиться в том что этот файл уже не открыт для чтения или записи dpmnr> другими клиентами а перед чтением - что кто-то уже не пишет в файл. dpmnr> При полытке использовать функцию flock выдается сообщение: dpmnr> unimplemented on this platform. dpmnr> вопрос: Правильно ли я понимаю проблему и как ее решить? Правильно. Способа два: сменить platform на ту, на которой implemented (способ на самом деле более здравый, чем кажется на первый взгляд - под юниксами перл работает не в пример лучше), либо пользоваться лок-файлами, памятуя о том, что операция rename атомарна. Впрочем, в этом втором случае тоже надо думать головой - под досом нет системного вызова link, зато rename не соглашается переименовывать в существующий файл. Под юниксами наоборот. Какова семантика у перлового rename под виндой - вопрос сложный... -- Счастливо! Ран. --- ifmail v.2.14.os-p7-tma3 * Origin: MemoNet (2:5020/371.32@fidonet) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/34731357a3ea.html, оценка из 5, голосов 10
|