ERRNO(3)

НАЗВАНИЕ
errno - выдает код последней ошибки

СИНТАКСИС
#include <errno.h>

extern int errno;

ОПИСАНИЕ
Целое число errno устанавливается системными вызовами (а также некоторыми библиотечными функциями) для определения вида ошибки. Его величина значима только тогда, когда вызов возвратил ошибку (обычно -1), и библиотечные функции, которые смогли обработать ситуацию, могут изменить errno. Иногда, когда -1 является только одним из возвращаемых значений функции, необходимо обнулять errno перед вызовом (для определения возможных ошибок). errno определено стандартом ISO C как изменяемое значение типа int и не должно явно объявляться: errno может быть и макросом. errno является локальным подпроцессом; изменение его в одном подпроцессе не влияет на его значение в другом процессе. Все правильные номера ошибок являются ненулевыми значениями; Ни одна из библиотечных функций не устанавливает значение errno равным нулю. Все названия ошибок, определенные в стандарте POSIX.1, должны иметь четко определенные значения. POSIX.1 (редакция 2001) определяет следующие символьные названия ошибок. Среди них EDOM и ERANGE также принадлежат к стандарту ISO C. Поправка #1 ISO C описывает дополнительную ошибку EILSEQ для указания на проблемы при работе с многобайтовыми или широкими символами.

E2BIG
    Слишком длинный список параметров

EACCES
    Доступ запрещен

EADDRINUSE
    Адрес уже используется

EADDRNOTAVAIL
    Адрес недоступен

EAFNOSUPPORT
    Семейство адресов не поддерживается

EAGAIN
    Ресурс временно недоступен

EALREADY
    Соединение уже устанавливается

EBADF
    Неправильный описатель файла

EBADMSG
    Неправильное сообщение

EBUSY
    Ресурс занят

ECANCELED
    Операция отменена

ECHILD
    Нет процессов-потомков

ECONNABORTED
    Соединение отменено

ECONNREFUSED
    Отказ в соединении

ECONNRESET
    Сброс соединения

EDEADLK
    Ресурс уже разблокирован

EDESTADDRREQ
    Требуется адрес назначения

EDOM
    Ошибка домена

EDQUOT
    Зарезервировано

EEXIST
    Файл уже существует

EFAULT
    Неверный адрес

EFBIG
    Файл слишком велик

EHOSTUNREACH
    Узел недоступен

EIDRM
    Идентификатор удален

EILSEQ
    Некорректная последовательность байтов

EINPROGRESS
    Операция еще выполняется

EINTR
    Работа функции прервана

EINVAL
    Неверный аргумент

EIO Ошибка ввода/вывода

EISCONN
    Сокет уже подключается

EISDIR
    Это каталог

ELOOP
    Слишком высокий уровень символьных ссылок

EMFILE
    Слишком много открытых файлов

EMLINK
    Слишком много ссылок

EMSGSIZE
    Hедостаточная длина буфера сообщений

EMULTIHOP
    Зарезервировано

ENAMETOOLONG
    Имя файла слишком длинное

ENETDOWN
    Нет сети

ENETRESET
    Отказ в соединении от сети

ENETUNREACH
    Сеть недоступна

ENFILE
    Слишком много открытых файлов в системе

ENOBUFS
    Нет доступного пространства в буфере

ENODATA
    Нет доступных сообщений в очереди чтения заголовка STREAM

ENODEV
    Устройство отсутствует

ENOENT
    Отсутствует файл или каталог

ENOEXEC
    Hеверный формат Exec

ENOLCK
    Hет доступных блокировок

ENOLINK
    Зарезервировано

ENOMEM
    Hедостаточно места

ENOMSG
    Нет сообщений требуемого типа

ENOPROTOOPT
    Протокол недоступен

ENOSPC
    Hедостаточно свободного места на устройстве

ENOSR
    Нет ресурсов STREAM

ENOSTR
    Не является STREAM

ENOSYS
    Функция не реализована

ENOTCON
    Сокет не подключен

ENOTDIR
    Это не каталог

ENOTEMPTY
    Каталог не пуст

ENOTSOCK
    Не является сокетом

ENOTSUP
    Hе поддерживается

ENOTTY
    Hекорректная операция ввода/вывода

ENXIO
    Hеправильный адрес или устройство

EOPNOTSUPP
    Операция не поддерживается на сокете

EOVERFLOW
    Значение слишком велико для хранения в типе данных

EPERM
    Операция запрещена

EPIPE
    Разорванный канал

EPROTO
    Ошибка протокола

EPROTONOSUPPORT
    Протокол не поддерживается

EPROTOTYPE
    Неправильный тип протокола для сокета

ERANGE
    Результат слишком велик

EROFS
    Файловая система открыта только для чтения

ESPIPE
    Hеверное позиционирование

ESRCH
    Hет процесса

ESTALE
    Зарезервировано

ETIME
    Таймер STREAM ioctl()

ETIMEDOUT
    Время работы операции истекло

ETXTBSY
    Тестовый файл занят

EWOULDBLOCK
    Операция будет блокировать (может быть такое же значение, как и у EAGAIN)

EXDEV
    Hекорректная ссылка

СМ. ТАКЖЕ
perror(3), strerror(3)