Каковы причины для проверки на ошибку при закрытии ()?

Замечания: Пожалуйста, прочтите до конца, прежде чем пометить это как дубликат. Хотя это похоже, объем того, что я ищу в ответе, выходит за рамки того, о чем просил предыдущий вопрос.

Широко распространенная практика, с которой я склонен согласиться, имеет тенденцию лечитьclose чисто как функция освобождения ресурса для файловых дескрипторов, а не как потенциальная операция ввода-вывода с осмысленными случаями сбоя. И действительно, доразрешение вопроса 529POSIX оставил состояние файлового дескриптора (т. Е. Было ли оно все еще выделено или нет) неопределенным после ошибок, что делало невозможным переносимый ответ на ошибки каким-либо значимым образом.

Тем не менее, много программного обеспечения GNU идет на все, чтобы проверить наличие ошибок отcloseиСправочная страница по Linux дляclose называет неспособность сделать это "распространенной, но, тем не менее, серьезной ошибкой программирования". NFS и квоты цитируются как обстоятельства, при которыхclose может выдать ошибку, но не дает подробностей.

В каких ситуацияхclose может не сработать в реальных системах, и актуальны ли они сегодня? Мне особенно интересно знать, существуют ли какие-либо современные системы, гдеclose отказывает по любым причинам, не относящимся к NFS, не зависящим от узла устройства, а также по отношению к сбоям NFS или устройств, при каких условиях (например, конфигурации) они могут быть замечены.

Ответы на вопрос(2)

Ваш ответ на вопрос