Ответ на вопрос 1, Почему мы должны установить errno
до 0 в начале программы , в том, что в какой-то время какой-то идиот может изменить программу и использовать errno
Значение, не проверяя, что предыдущий системный вызов не удался ( errno
, установлен только в случае сбоя, он не сбрасывается до 0 от успеха).
Перрор ()
и StrError ()
системных вызовов , они функции библиотеки. Они позаботится о сохранении первоначального значения errno
в то время, когда их называют. (На самом деле StrError ()
может быть макрос ( #define
), поэтому его следует только вызвать только тогда, когда вы знаете errno
имеет допустимое значение.)