Что такое fflush и что он делает?

Я читал http://www.cplusplus.com/reference/cstdio/fflush/ и мне было любопытно, что это значит. Согласно веб-сайту говорится:

Если данный поток был открыт для записи (или если он был открыт для обновления, а последняя операция ввода-вывода была операцией вывода), любые неписанные данные в его выходном буфере записываются в файл.

Что означает выходной буфер в файл?

2 ответа

Решение

Некоторые потоки буферизуют выходные данные и не записывают данные на устройство немедленно. fflush принудительно записывает содержимое буфера потока, если оно есть, на устройство и очищает буфер.

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

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

Это относится и к другим типам файловых потоков.

Другие вопросы по тегам