Задать вопрос
Driver86
@Driver86
Немодератор toster.ru

Запись только в конец файла?

https://www.php.net/manual/ru/function.fopen.php
mode = 'a'
Открывает файл только для записи; помещает указатель в конец файла. Функция пытается создать файл, если файл не существует. В этом режиме функция fseek() не влияет на положение указателя, записи каждый раз добавляются в конец.

Но что будет, если после fopen, но до fwrite, другой процесс откроет и изменит файл? Вроде как, указатель в текущем процессе будет там же, где и был, не затрёт ли это запись другого процесса? Или ОС сама "разрулит" это положение?
Проще говоря, mode = 'a' всегда гарантирует запись в коней файла?
  • Вопрос задан
  • 61 просмотр
Подписаться 1 Простой 3 комментария
Решения вопроса 1
Driver86
@Driver86 Автор вопроса
Немодератор toster.ru
Ну вроде бы как да, всегда в конец.
https://pubs.opengroup.org/onlinepubs/9699919799/f...
Opening a file with append mode (a as the first character in the mode argument) shall cause all subsequent writes to the file to be forced to the then current end-of-file, regardless of intervening calls to fseek().

Т.е., по-русски говоря, открытие файла в режиме добавления (первый символ в аргументе режима — a) приведет к тому, что все последующие записи в файл будут принудительно выполняться в текущий конец файла, независимо от промежуточных вызовов fseek().
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы