同步 I/O

缺省情况下,将文件写入 JFS 或 JFS2 文件系统中是异步的。

然而,JFS 和 JFS2 文件系统支持下列类型的同步 I/O:
  • 由 O_DSYNC 打开标记指定。 当文件使用 O_DSYNC 打开方式打开时,只有文件数据和需要用于检索文件数据的所有文件系统元数据均被写到它们的永久存储位置后,write () 系统调用才会返回。
  • 由 O_SYNC 打开标记指定。 除了由 O_DSYNC 指定的项目之外,O_SYNC 还指定,只有在将与 I/O 相关的所有文件属性写到它们的永久存储位置后,write () 系统调用才返回,即使检索文件数据不需要这些属性也是如此。

    在 O_DSYNC 开放模式出现之前,AIX®将 O_DSYNC 语义应用于 O_SYNC。 出于二进制兼容性原因,此行为仍然存在。 如果需要真正的 O_SYNC 行为,那么必须同时指定 O_DSYNC 和 O_SYNC 打开标记。 导出 XPG_SUS_ENV=ON 环境变量也启用真正的 O_SYNC 行为。

  • 由 O_RSYNC 打开标记指定,它仅将与 O_SYNC 或 _DSYNC 关联的行为应用于读取。 对于 JFS 和 JFS2 文件系统中的文件,只有 O_RSYNC | O_SYNC 组合具有意义,指示只有当文件的访问时间被写到其永久存储位置之后,read 系统调用才会返回。