Замена нескольких вызовов fdatasync() одним вызовом sync ()

У меня есть приложение с тысячами обновляемых файлов. Периодически приложение должно зафиксировать изменения на диске, и в настоящее время я звоню fdatasync(), что занимает значительное количество времени (минут). [Уменьшение количества записываемых файлов не вариант для меня.]

В то же время я заметил, что если я sync Команда из командной строки, она будет возвращаться значительно быстрее. Из документации кажется, что это гарантирует, что все ожидающие записи достигли диска.

Вопрос: sync() Системный вызов дает такие же (или более сильные) гарантии долговечности, как несколько fdatasync() звонки? Если нет, есть ли способ fsync() несколько файловых дескрипторов в одном вызове?

0 ответов

Другие вопросы по тегам