Ошибка проверки с помощью uname(2)?
Нужно ли проверять ошибки после звонка uname(2)
?
Согласно странице руководства:
В случае успеха возвращается ноль. При ошибке возвращается -1, и errno устанавливается соответствующим образом.
и под заголовком ОШИБКИ,
EFAULT buf недействителен.
единственная ошибка в списке.
Могу ли я предположить, что uname
никогда не потерпит неудачу, если дано действительное struct utsname
буфер?
1 ответ
Нет.
Просто так EFAULT
единственный errno
в списке, это не значит, uname
никогда не потерпит неудачу, пока вы передадите правильный буфер. Это может потерпеть неудачу по любой другой причине. т.е. если uname
код возврата -1
, то это не удалось независимо от стоимости errno
,
errno
имеет смысл, только если вызов функции / системы указывает на сбой; сам по себе он не определяет успех / неудачу библиотечной функции / системного вызова.