В случае ошибок ввода-вывода вы рискуете потерять и не закрыть дескриптор. Надо аккуратнее.