Описание режима обновления (+
) для открытия файла содержит эту деталь:
Когда файл открывается в режиме обновления («+» в качестве второго или третьего символа в
Приведенный выше список mode
значений аргументов), ввод и вывод могут выполняться на
связанный поток. Однако за выводом не следует непосредственно вводить без
промежуточный вызов функции fflush
или функции позиционирования файла (fseek
,
fsetpos
или rewind
), и за входом не должно следовать непосредственно выход без
промежуточный вызов функции позиционирования файла, если только операция ввода не встречает endof-file.
Так что, хотя в описании этих функций явно не упоминается, что они очищают буфер, это условие подразумевает это. Но требуется только при использовании режима обновления.