Да, много. Большинство программ большую часть времени не удосуживаются вызывать какие-либо из различных операций синхронизации; сброса данных в буферный пул ядра при закрытии файла достаточно. Это вдвойне верно, если вы используете журналированную файловую систему.
Обратите внимание, что очистка - это операция более высокого уровня, чем read()
или аналогичные системные вызовы. Он используется библиотекой C <stdio.h>
или библиотекой C ++ <iostream>
. Системные вызовы по своей природе сбрасывают данные в буферный пул ядра (или напрямую на диск, если вы используете прямой ввод-вывод или что-то подобное).
Также обратите внимание, что в POSIX-подобных системах вы можете организовать синхронизацию данных и т. Д., Установив флаги для системного вызова open()
(O_SYNC
, O_DSYNC
, O_RSYNC
) или впоследствии через fcntl()
.