Открытие файла в режиме 'A +'
-
01-10-2019 - |
Вопрос
Если файл открыт с помощью следующей команды:
FILE *f1=fopen("test.dat","a+");
Страница человека читает:
А +
Открыть для чтения и присоединения (запись в конце файла). Файл создан, если он не существует. Начальная позиция файлов для чтения находится в начале файла, но вывод всегда добавляется к концу файла.
Так что делает f1
У 2 отдельных офсетных указателей, один для чтения и другого для записи?
Решение
Нет.
Есть только один указатель, который изначально находится в начале файла, но Когда операция записи предпринимается, она перемещается в конец файла. Отказ Вы можете переместить его, используя fseek
или rewind
В любом месте файла для чтения, но пишущие операции будут перемещать его обратно в конец файла.
Другие советы
Нет, у него есть только один указатель.
Ты сможешь никогда Смешать чтение и запись операций на FILE
без звонка fseek
между. Это может работать по желанию в некоторых реализациях, но программа, которая зависит от этого, имеет неопределенное поведение. Таким образом, вопросы имения 2 позиций бессмыслены.