Главная » 2016 » Март » 28 » Режим присоединения
12:12
Режим присоединения
Когда файл fd открывается в режиме присоединения (при помощи флага0 APPEND), то запись начинается не с текущей позиции в файле, а с конца файла.Например, предположим, что два процесса записывают данные в один и тотже файл. В другом режиме, отличном от режима присоединения, если первыйпроцесс запишет данные в конец файла и потом то же самое сделает второйпроцесс, то позиция в файле для первого процесса уже не будет указывать наконец файла; она будет указывать в точку, отстающую от реального конца файлана длину данных, только что записанных вторым процессом. Это означает,что несколько процессов не могут присоединять данные к одному файлу без явнойсинхронизации, так как при этом они будут попадать в условия состязания.Режим присоединения позволяет избежать этой проблемы. Он гарантирует,что позиция в файле всегда устанавливается на конец файла, поэтому операциизаписи всегда присоединяют данные в конце файла, даже если их выполняютразные процессы. Можно представлять себе это так, как будто перед каждымзапросом на запись позиция в файле обновляется и после обновления указываетна самый конец последних записанных данных. Это не имеет значения дляследующего вызова w r ite ( ), так как w n te ( ) автоматически обновляет позицию вфайле, но может иметь значение, если после этого вы вызовете read() по какой-то причине.Режим присоединения очень удобно использовать для определенных задач,таких, как обновление файлов журнала, но для большинства других он ненужен.
Просмотров: 537 | Добавил: admin | Рейтинг: 0.0/0
Всего комментариев: 0
avatar