首页 > 代码库 > 文件打开方式O_DSYNC、O_RSYNC、O_SYNC
文件打开方式O_DSYNC、O_RSYNC、O_SYNC
O_DSYNC:
每次write都等待物理I/O完成,但是如果写操作不影响读取刚写入的数据,则不等待文件属性更新
O_RSYNC:
每个以文件描述符作为参数的read操作等待,直到所有对文件同一部分的未决写操作完成
O_SYNC:
每次write都等到物理I/O完成,包括write引起的文件属性的更新
- O_SYNC: requires that any write operations block until all data and all metadata have been written to persistent storage.
- O_DSYNC: like O_SYNC, except that there is no requirement to wait for any metadata changes which are not necessary to read the just-written data. In practice, O_DSYNC means that the application does not need to wait until ancillary information (the file modification time, for example) has been written to disk. Using O_DSYNC instead of O_SYNC can often eliminate the need to flush the file inode on a write.
- O_RSYNC: this flag, which only affects read operations, must be used in combination with either O_SYNC or O_DSYNC. It will cause aread() call to block until the data (and maybe metadata) being read has been flushed to disk (if necessary). This flag thus gives the kernel the option of delaying the flushing of data to disk; any number of writes can happen, but data need not be flushed until the application reads it back.
文件打开方式O_DSYNC、O_RSYNC、O_SYNC
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。