Стандарт POSIX 2001 определяет большое число возможных значений для errno. Многие из них относятся к сетям, IPC или другим специальным задачам. Справочная страница для каждого системного вызова описывает возможные значения
, которые могут иметь место; поэтому вы можете написать код для проверки отдельных ошибок и соответствующим образом обработать их, если это нужно. Возможные значения определены через символические имена. Предусмотренные GLIBC значения перечислены в табл. 4.1.
Имя | Значение |
E2BIG
| Слишком длинный список аргументов |
EACCESS
| Доступ запрещен |
EADDRINUSE
| Адрес используется |
EADDRNOTAVAIL
| Адрес недоступен |
EAFNOSUPPORT
| Семейство адресов не поддерживается |
EAGAIN
| Ресурс недоступен, попытайтесь снова (может быть то же самое значение, что EWOULDBLOCK ). |
EALREADY
| Соединение уже устанавливается |
EBADF
| Ошибочный дескриптор файла. |
EBADMSG
| Ошибочное сообщение. |
EBUSY
| Устройство или ресурс заняты |
ECANCELED
| Отмена операции. |
ECHILD
| Нет порожденного процесса. |
ECONNABORTED
| Соединение прервано |
ECONNFRFUSED
| Соединение отклонено |
ECONNRESET
| Восстановлено исходное состояние соединения. |
EDEADLK
| Возможен тупик (deadlock) в запросе ресурса. |
EDESTADDRREQ
| Требуется адрес назначения |
EDOM
| Математический аргумент выходит за область определения функции |
EDQUOT
| Зарезервировано. |
EEXIST
| Файл существует. |
EFAULT
| Ошибочный адрес. |
EFBIG
| Файл слишком большой. |
EHOSTUNREACH
| Хост недоступен. |
EIDRM
| Идентификатор удален |
EILSEQ
| Ошибочная последовательность байтов. |
EINPROGRESS
| Операция исполняется. |
EINTR
| Прерванная функция. |
EINVAL
| Недействительный аргумент. |
EIO
| Ошибка ввода/вывода. |
EISCONN
| Сокет (уже) соединен. |
EISDIR
| Это каталог. |
ELOOP
| Слишком много уровней символических ссылок. |
EMFILE
| Слишком много открытых файлов. |
EMLINK
| Слишком много ссылок. |
EMSGSIZE
| Сообщение слишком длинное. |
EMULTIHOP
| Зарезервировано. |
ENAMETOOLONG
| Имя файла слишком длинное |
ENETDOWN
| Сеть не работает |
ENETRESET
| Соединение прервано сетью |
ENETUNREACH
| Сеть недоступна. |
ENFILE
| В системе открыто слишком много файлов. |
ENOBUFS
| Буферное пространство недоступно. |
ENODEV
| Устройство отсутствует |
ENOENT
| Файл или каталог отсутствуют |
ENOEXEC
| Ошибочный формат исполняемого файла. |
ENOLCK
| Блокировка недоступна. |
ENOLINK
| Зарезервировано. |
ENOMEM
| Недостаточно памяти. |
ENOMSG
| Сообщение нужного типа отсутствует |
ENOPROTOOPT
| Протокол недоступен. |
ENOSPC
| Недостаточно памяти в устройстве. |
ENOSYS
| Функция не поддерживается. |
ENOTCONN
| Сокет не соединен. |
ENOTDIR
| Это не каталог |
ENOTEMPTY
| Каталог не пустой. |
ENOTSOCK
| Это не сокет |
ENOTSUP
| Не поддерживается |
ENOTTY
| Неподходящая операция управления вводом/выводом |
ENXIO
| Нет такого устройства или адреса. |
EOPNOTSUPP
| Операция сокета не поддерживается |
EOVERFLOW
| Слишком большое значение для типа данных |
EPERM
| Операция не разрешена |
EPIPE
| Канал (pipe) разрушен |
EPROTO
| Ошибка протокола. |
EPROTONOSUPPORT
| Протокол не поддерживается |
EPROTOTYPE
| Ошибочный тип протокола для сокета |
ERANGE
| Результат слишком большой |
EROFS
| Файловая система только для чтения |
ESPIPE
| Недействительный поиск |
ESRCH
| Нет такого процесса |
ESTALE
| Зарезервировано |
ETIMEDOUT
| Тайм-аут соединения истек |
ETXTBSY
| Текстовый файл занят |
EWOULDBLOCK
| Блокирующая операция (может быть то же значение, что и для EAGAIN ) |
EXDEV
| Ссылка через устройство (cross-device link) |