> программа позвала open(), написала данные write()'ом, позвала close(). Все системные вызовы завершились успешно. Программа (и, как следствие, пользователь!) уверены, что ВСЕ НОРМАЛЬНО. Exit code 0.Если программа написана нормальным программистом, то перед закрытием она заставит операционку сбросить буфер и будет ждать завершения записи. Некоторые системы вообще открывают файлы в синхронном режиме.
> Как объяснить пользователю поведение операционной системы, допустим, если в данном случае просто инвалидировать содержимое кэша буферов? Он же ВИДЕЛ, что ВСЕ НОРМАЛЬНО завершилось!
Вывалить сообщение на консоль.
> Паника операционки в этом случае -- способ показать, что ан нет, не все нормально...
А лучше - при сборке компьютера закладывать пиропатрон, который в таких случаях будет взрывать систему, показывая юзеру, что так жедать не надо. :)