fflush与fsync函数
时间: 2023-12-20 17:06:17 浏览: 116
函数sync、fsync与fdatasync的总结整理(必看篇)
fflush() 是 C 标准库函数,用于刷新流缓冲区,将缓冲区中的内容写入到文件中或输出到终端。当我们对标准输出流 stdout 或者标准错误流 stderr 进行输出时,通常需要使用 fflush(stdout) 或 fflush(stderr) 函数来刷新缓冲区,确保数据及时输出。
而 fsync() 函数是 POSIX 标准函数,用于将指定文件描述符所对应的文件数据和属性信息写入磁盘中。该函数会将文件描述符所对应的文件的数据和属性信息都刷新到磁盘中,因此在使用 fsync() 函数后,该文件的数据和属性信息一定会被保存到磁盘上。
需要注意的是,fflush() 函数仅仅是刷新了缓冲区,而不一定将数据写入磁盘,而 fsync() 函数则是强制将数据写入磁盘,因此 fsync() 的开销比 fflush() 更大。
阅读全文