Замена нескольких вызовов fdatasync() одним вызовом sync ()
У меня есть приложение с тысячами обновляемых файлов. Периодически приложение должно зафиксировать изменения на диске, и в настоящее время я звоню fdatasync()
, что занимает значительное количество времени (минут). [Уменьшение количества записываемых файлов не вариант для меня.]
В то же время я заметил, что если я sync
Команда из командной строки, она будет возвращаться значительно быстрее. Из документации кажется, что это гарантирует, что все ожидающие записи достигли диска.
Вопрос: sync()
Системный вызов дает такие же (или более сильные) гарантии долговечности, как несколько fdatasync()
звонки? Если нет, есть ли способ fsync()
несколько файловых дескрипторов в одном вызове?