fdatasync()只将文件的数据flush到磁盘,这一点跟fsync()一样,但不同的是fsync()除了更新文件数据外还要同时更新文件的元数据(meta data)。因此当用户频繁更改数据,并且每次的改动量都比较小,还要求每次的改动是transanction的时候(是不是听起来有点拗口?)可以考虑使用fdatasync(),这无疑会提高效率。fdatasync()是在POSIX.4中被正式定义的。