Вопрос

Если файл открыт с помощью следующей команды:

FILE *f1=fopen("test.dat","a+");

Страница человека читает:

А +

Открыть для чтения и присоединения (запись в конце файла). Файл создан, если он не существует. Начальная позиция файлов для чтения находится в начале файла, но вывод всегда добавляется к концу файла.

Так что делает f1 У 2 отдельных офсетных указателей, один для чтения и другого для записи?

Это было полезно?

Решение

Нет.

Есть только один указатель, который изначально находится в начале файла, но Когда операция записи предпринимается, она перемещается в конец файла. Отказ Вы можете переместить его, используя fseek или rewind В любом месте файла для чтения, но пишущие операции будут перемещать его обратно в конец файла.

Другие советы

Нет, у него есть только один указатель.

Ты сможешь никогда Смешать чтение и запись операций на FILE без звонка fseek между. Это может работать по желанию в некоторых реализациях, но программа, которая зависит от этого, имеет неопределенное поведение. Таким образом, вопросы имения 2 позиций бессмыслены.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top