fdatasync() - Unix、Linux 系统调用
Tutorials Point


  Unix 初学者指南
  Unix Shell 编程
  高级 Unix
  Unix 有用参考
  Unix 有用资源
  精选阅读

版权所有 © 2014 tutorialspoint



  首页     参考     讨论论坛     关于 TP  

fdatasync() - Unix、Linux 系统调用


previous next AddThis Social Bookmark Button

广告

名称

fdatasync - 将文件的内存中数据与磁盘上的数据同步

语法

#include <unistd.h> 

int fdatasync(int fd);

描述

fdatasync() 将文件的所有数据缓冲区刷新到磁盘(在系统调用返回之前)。它类似于 fsync(),但不需要更新元数据,例如访问时间。

访问数据库或日志文件的应用程序通常会写入一个很小的数据片段(例如,日志文件中的一个行),然后立即调用 fsync() 以确保写入的数据已物理存储在硬盘上。不幸的是,fsync() 将始终启动两个写操作:一个用于新写入的数据,另一个用于更新 inode 中存储的修改时间。

如果修改时间不是事务概念的一部分,则可以使用 fdatasync() 来避免不必要的 inode 磁盘写操作。

返回值

成功时,返回零。出错时,返回 -1,并且 errno 被相应地设置。

错误

错误代码描述
EBADF fd 不是一个有效的用于写入的文件描述符。
EIO 同步期间发生错误。
EROFSEINVAL fd 绑定到不支持同步的特殊文件。

缺陷

目前(Linux 2.2)fdatasync() 等效于 fsync()。

可用性

在提供 fdatasync() 的 POSIX 系统上,<unistd.h> 中定义的 _POSIX_SYNCHRONIZED_IO 的值为大于 0 的值。(另请参阅 sysconf(3)。)

符合标准

POSIX.1-2001。

参见



previous next Printer Friendly

广告


  

广告



广告