Открыть файл в режиме добавления несколькими процессами - PullRequest
4 голосов
/ 09 июля 2011

AFAIK каждый процесс будет вести отдельную таблицу файлов (поправьте меня, если я не так понимаю).Так, например, один и тот же файл открывается в режиме APPEND несколькими процессами одновременно, и каждый процесс записывает некоторые данные в файл.Он добавляется в конец файла правильно.Так может кто-нибудь объяснить мне, как файловая таблица во всех процессах обновляется одновременно?Заранее спасибо

Ответы [ 2 ]

4 голосов
/ 09 июля 2011

Я не думаю, что таблицы файлов обновляются.Просто файловая система «ищет» конец файла перед записью.

Поскольку несвязанным процессам разрешено записывать в конец файла одновременно, я считаю, что должна быть задействована какая-то блокировкапоиск и фактическая запись не должны прерываться.

Этот режим добавления во многом является функцией конкретной файловой системы, а не функцией операционной системы.Я четко помню, что в Linux O_APPEND не работает правильно, если файл находится в NFS.

0 голосов
/ 09 июля 2011

Режим работы APPEND работает путем поиска конца файла перед записью (в отличие от записи в позиции CURSOR, в противном случае). Поскольку конец файла является свойством файла, а не таблицы файлов , все процессы будут добавлять в конец файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...