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

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

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

Но что будет, если после fopen, но до fwrite, другой процесс откроет и изменит файл? Вроде как, указатель в текущем процессе будет там же, где и был, не затрёт ли это запись другого процесса? Или ОС сама "разрулит" это положение?
Проще говоря, mode = 'a' всегда гарантирует запись в коней файла?
  • Вопрос задан
  • 223 просмотра
Подписаться 1 Простой 7 комментариев
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 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().
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽