`Close ()` сбрасывает буферизованные выходные данные? - PullRequest
0 голосов
/ 14 октября 2018

fclose() очищает буферизованные выходные данные.

close() также очищает буферизованные выходные данные?

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

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

Ваша ОС может иметь или не иметь некоторые буферы, связанные с дескриптором открытого файла (илис устройством, на котором находится соответствующий файл), в зависимости от характера файла.Они обычно невидимы на уровне прикладной программы и не подвержены влиянию close.

0 голосов
/ 15 октября 2018

Форма этот источник:

Успешное закрытие не гарантирует успешного сохранения данных на диск, поскольку ядро ​​откладывает запись.В файловой системе не принято очищать буферы при закрытии потока.Если вам необходимо убедиться, что данные физически хранятся, используйте fsync (2).(Это будет зависеть от аппаратного обеспечения диска на данный момент.)

...