Открытие файла в режиме ' a+ '

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

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

на главной странице написано:

a+

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

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

3 ответов


нет.

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


нет, он имеет только один указатель.


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