Открытие файла в режиме ' a+ '
Если файл открыт с помощью следующей команды:
FILE *f1=fopen("test.dat","a+");
на главной странице написано:
a+
открыть для чтения и добавления (запись в конце файла). Этот файл создается, если он не существует. Исходная позиция файла для чтения находится в начале файла, но вывод всегда прилагается к концу файла.
Так же f1
есть 2 отдельных указателя смещения, один для чтения и другой для записи?
3 ответов
нет.
есть только один указатель, который изначально находится в начале файла, но при попытке операции записи он перемещается в конец файла. Вы можете переместить его с помощью fseek
или rewind
в любом месте файла для чтения, но операции записи переместят его обратно в конец файла.
Вы можете никогда смешайте операции чтения и записи на FILE
без вызова fseek
В между. Он может работать по вашему желанию в некоторых реализациях, но программа, которая зависит от этого, имеет неопределенное поведение. Таким образом, вопросы наличия 2 позиций бессмысленны.