知识点

内核I/O缓冲区是由操作系统管理的空间,而流缓冲区是由标准I/O库管理的用户空间。fflush()只刷新位于用户空间中的流缓冲区。fflush()返回后,只保证数据已不在流缓冲区中,并不保证它们一定被写到了磁盘。此时,从流缓冲区刷新的数据可能已被写至磁盘,也可能还待在内核I/O缓冲区中。要确保流I/O写出的数据已写至磁盘,那么在调用fflush()后还应当调用fsync()

你可能感兴趣的:(知识点)