Синхронный ввод-вывод
По умолчанию данные записываются в файлы JFS и JFS2 асинхронно.
Однако JFS и JFS2 поддерживают следующие типы синхронного
ввода-вывода:
- Тип, задаваемый флагом O_DSYNC. Если он будет указан при открытии файла, системный вызов write () будет возвращать управление программе только после записи в постоянную память всех данных и метаданных, необходимых для восстановления этих данных.
- Тип, задаваемый флагом O_SYNC. При указании этого флага функция write() будет выполнять те же действия,
что и для флага O_DSYNC. Кроме того, перед передачей управления программе
она запишет в постоянную память все атрибуты файла, связанные с
вводом-выводом, даже если они не нужны для восстановления файла.
Перед появлением флага O_DSYNC его функции в AIX выполнял флаг O_SYNC. Этот тип ввода-вывода поддерживается для обеспечения двоичной совместимости. Для того чтобы воспользоваться фактическими функциями флага O_SYNC, при открытии файла нужно указать оба флага O_DSYNC и O_SYNC. Флаг O_SYNC также будет выполнять свои функции, если будет экспортирована переменная среды XPG_SUS_ENV=ON.
- Тип, задаваемый флагом O_RSYNC. Он выполняет функции флагов O_SYNC и _DSYNC для операций чтения. Для файлов JFS и JFS2 флаг O_RSYNC имеет смысл указывать только в сочетании с флагом O_SYNC. В этом случае системный вызов read будет возвращать управление программе только после записи в постоянную память времени обращения к файлу.