Вы должны использовать небуферизованный ввод / вывод для записи, в Carbon это FSWriteFork()
с kFSNoCacheBit
, в BSD fcntl()
с F_NOCACHE
.
Вместо того чтобы использовать неблокирующий ввод-вывод системы, вы можете рассмотреть возможность создания рабочего потока для последовательной записи блоков с использованием очереди. Это даст вам больше контроля и может оказаться проще, особенно если вы хотите следить за очередью, чтобы убедиться, что вы в курсе или нет.
См. здесь для получения дополнительной информации.