Здесь есть две вещи, о которых следует подумать, на что намекают другие ответы.
Первый - это повреждение файловой системы. Это относится к структурам метаданных, которые делают файловую систему пригодной для использования, и понимаются и контролируются ядром.
Второе содержание файлов. Когда содержимое файла повреждено, ядро не будет знать (или заботиться). Сложные системы, такие как базы данных, реализуют свои собственные средства метаданных для решения этой проблемы, но для большинства типов файлов в типичной настольной системе такой вещи нет.
Если вы редактируете файл, «изменение» файла может состоять из записей в нескольких местах. Когда все эти записи завершены, файл находится в согласованном состоянии, но когда только некоторые из этих записей завершены, содержимое файла может быть повреждено (несовместимо)
Операционная система будет (должна) «группировать» записи в транзакции. Так, например, когда файл увеличивается, данные должны быть записаны в блоки, принадлежащие этому файлу, и структуры файловой системы должны быть обновлены, чтобы выделить эти новые блоки для файла, и возможные изменения в записи каталога (например, время последней модификации). ) быть обновленным, все как одна группа. Как только все это будет синхронизировано (сброшено) на диск, файловая система снова станет согласованной, но содержимое файла может не совпадать, пока все соответствующие записи не будут отправлены приложением и не записаны на диск операционной системой.
Если приложение находится в середине сложного изменения и блокируется до того, как все транзакции были выполнены, например, вы нажимаете СОХРАНИТЬ и сразу закрываете крышку ноутбука, вся группа изменений может не все попасть в очереди записи ядра.
Обычно все, что находится в очереди записи, будет сброшено на диск. Файловые системы должны, как правило, быть согласованными. Однако из-за журналов файловой системы это может означать, что некоторые из этих изменений временно сохраняются в журнале, хотя и безопасно на диске.
Содержание файла, однако, это другая история.