Upon successful completion, socket() shall return a non-negative integer, the socket file descriptor. Otherwise, a value of -1 shall be returned and errno set to indicate the error.
(c) IEEE 1003.1
Собственно вопрос: а чисто теоретически, может ли функция вернуть отрицательное значение отличное от (-1)? Это считается ошибкой или валидным дескриптором?
И как правильнее проверять на ошибку в таких случаях:
if (ret_code == -1)
{
/* ... handle error ... */
}
if (ret_code < 0)
{
/* ... handle error ... */
}