fflush(对于FILE *),std :: flush(对于IOStream)强制您的程序发送到OS。
POSIX有
sync(2)要求计划写入其缓冲区,但是可以在写入完成之前返回(Linux等待返回之前将数据发送到硬件)。
fsync(2)可以保证等待数据发送到硬件,但是需要一个文件描述符(您可以使用fileno(3)从FILE *获取一个文件描述符,我知道没有标准的方法可以从IOStream)。
O_SYNC作为打开(2)的标志。
在所有情况下,硬件都可能拥有自己的缓冲区(但是,如果有控制权,一个好的实现也将尝试刷新它们,并且ISTR表示某些磁盘正在使用电容器,以便它们能够刷新电源发生的任何变化)网络文件系统也有自己的警告。



