синхронизация общих файлов (чтение / запись) - PullRequest
2 голосов
/ 10 июня 2011

Я написал в коде PHP, что он "откроет" файл (давайте назовем его TXT) и запишу там выбранный флажок, а затем другому процессу (давайте назовем его PROC1-в коде c) необходимо прочитать файл (TXT ).

Мне нужно синхронизировать его, я имею в виду заблокировать процесс (PROC1) от чтения, в то время как PHP записывает в общий ресурс (TXT).

fopen заботится об этом? Я думаю, что разница между ним и методом open () ..

или, возможно, использовать pipe (), но, как я видел, он запускает только команды и не открывает файл ..

Еще раз спасибо заранее.

1 Ответ

1 голос
/ 10 июня 2011

Нет, fopen не заботится об этом.Вы можете использовать flock для синхронизации доступа к файлу.

Обратите внимание, что все процессы должны будут flock () файл перед его использованием, это зависит от платформы, но flock ()обычно консультативные блокировки, то есть любой может просто обойти блокировку, если он этого пожелает (например, если он забудет вызвать flock ())

...