Зачем возвращать отрицательный номер ошибки? (например, возврат -EIO)

Еще один простой пример:

if (wpa_s->mlme.ssid_len == 0)
    return -EINVAL;

Почему одинарный минус? Делается ли это (обычно) для функций, которые возвращают> 0 в случае успеха и <(=) 0 в случае неудачи или есть какая-то другая причина?