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