Некоторые операции для чтения и записи из потоков могут устанавливать флаг ошибки в потоке, который может быть протестирован с использованием ferror(stream)
, в то время как я уверен, что это должен быть часто задаваемый вопрос, мне не удалось найти список все возможные причины ошибок в SO или в общей сети. Что может вызвать настройку ferror()?Каковы возможные условия ошибки для потока, которые вызовут настройку ferror()?
В частности, я ищу возможные причины ошибок при выполнении fgets() на стандартном входе на Minix 3, но я ищу также более общий список.
вы можете использовать 'PError()', чтобы получить более описательный информацию об ошибке – keety
@keety: Я принятие решения о том, как моя программа должна справиться с ситуацией, когда есть ошибка в потоке, будь то просто страшное и бросить курить, а также зарыть и восстановить (сбросить флаг ошибки и продолжить) или сделать что-то еще. Чтобы принять это решение, я должен знать все возможные причины ошибок (или, по крайней мере, общие). –
@keety, но 'ferror()' не должен обновлять 'errno', если поток ошибочен, поэтому, вероятно, слишком поздно использовать' perror() '. @ lie-ryan должен использовать 'perror()' после неудачного вызова 'fgets()'. – ydroneaud