LINUX.ORG.RU

Запись / чтение файлов...


0

0
Подскажите, как будет осуществляться запись / чтение если:
- есть ~20 процессов, которые читают файл, при чтении не осуществляется никаких блокировок.
- есть ~5 процессов которые пишут в тот же файл, при этом каждый из них ждет получения LOCK'а на запись.


Может ли быть такая ситуация что кто-то из читателей получит не доконца записанный файл?
Или ОС не даст читать файл пока кто-то в него пишет?
anonymous
Ответ на: комментарий от alphex_kaanoken
Лочу из Perl:
open(FH, ">>$file");
flock(FH, LOCK_EX);
...
print FH ...;
...
close(FH);

Читаю:
open(FH, "<$file");
...
close(FH);

Процессы пускаются веб-сервером.
anonymous
()
Ядро не возьмет блокировок во время чтения, поэтому чтение с записью может происходить одновременно и легко можно прочитать мусор. Используйте rw-блокировки, если у вас много читающих и мало пишущих.
anonymous
()
Ответ на: комментарий от anonymous
должно блокироваться, хотя как сделаны обвязки в perl не знаю.
alphex_kaanoken ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.