版权所有 © 2014 tutorialspoint
fdatasync - 将文件的内存中数据与磁盘上的数据同步
#include <unistd.h> int fdatasync(int fd);
int fdatasync(int fd);
fdatasync() 将文件的所有数据缓冲区刷新到磁盘(在系统调用返回之前)。它类似于 fsync(),但不需要更新元数据,例如访问时间。
访问数据库或日志文件的应用程序通常会写入一个很小的数据片段(例如,日志文件中的一个行),然后立即调用 fsync() 以确保写入的数据已物理存储在硬盘上。不幸的是,fsync() 将始终启动两个写操作:一个用于新写入的数据,另一个用于更新 inode 中存储的修改时间。
如果修改时间不是事务概念的一部分,则可以使用 fdatasync() 来避免不必要的 inode 磁盘写操作。
成功时,返回零。出错时,返回 -1,并且 errno 被相应地设置。
目前(Linux 2.2)fdatasync() 等效于 fsync()。
在提供 fdatasync() 的 POSIX 系统上,<unistd.h> 中定义的 _POSIX_SYNCHRONIZED_IO 的值为大于 0 的值。(另请参阅 sysconf(3)。)
POSIX.1-2001。
fsync (2)
sync_file_range (2)
广告