Моя программа (только 1 процесс и 1 поток) последовательно записывает n последовательных фрагментов данных в файл на жестком диске (обычный тип жесткого диска), используя старый системный вызов записи. Это похоже на какой-то файл журнала только для добавления.
После сбоя системы (сбой питания, а не сбой жесткого диска) я перечитал и убедился, что куски [i] (0 ‹ i ‹ n) были полностью записаны на диск (путем проверки длины). Может быть, содержимое чанка не соответствует контрольной сумме, но все же целые чанки[i] устойчиво сидят на поверхности магнитного диска.
Безопасно ли для меня предполагать, что все остальные фрагменты до того, как куски [i] тоже будут полностью записаны? Или существует (или много) chunks[j] (0 ‹ j ‹ i), который частично (или вообще не записан) на диск? Я знаю, что можно переупорядочить случайную запись для повышения пропускной способности диска, но можно ли переупорядочить и последовательную запись?