Ошибка проверки с помощью uname(2)?

Нужно ли проверять ошибки после звонка uname(2)?

Согласно странице руководства:

В случае успеха возвращается ноль. При ошибке возвращается -1, и errno устанавливается соответствующим образом.

и под заголовком ОШИБКИ,

EFAULT buf недействителен.

единственная ошибка в списке.

Могу ли я предположить, что uname никогда не потерпит неудачу, если дано действительное struct utsname буфер?

1 ответ

Решение

Нет.

Просто так EFAULT единственный errno в списке, это не значит, uname никогда не потерпит неудачу, пока вы передадите правильный буфер. Это может потерпеть неудачу по любой другой причине. т.е. если unameкод возврата -1, то это не удалось независимо от стоимости errno,

errno имеет смысл, только если вызов функции / системы указывает на сбой; сам по себе он не определяет успех / неудачу библиотечной функции / системного вызова.

Другие вопросы по тегам