Namespaces
Variants

Error numbers

From cppreference.net

Каждый из макросов, определённых в <cerrno> , раскрывается в целочисленные константные выражения типа int , каждое с положительным значением, соответствующим большинству POSIX кодов ошибок . Определены следующие константы (реализация может определять дополнительные, при условии что они начинаются с 'E' , за которым следуют цифры или заглавные буквы).

Определено в заголовке <cerrno>
E2BIG
(C++11)
Список аргументов слишком длинный
(макрос-константа)
EACCES
(C++11)
Доступ запрещен
(макроконстанта)
EADDRINUSE
(C++11)
Адрес уже используется
(макрос-константа)
EADDRNOTAVAIL
(C++11)
Адрес недоступен
(макроконстанта)
EAFNOSUPPORT
(C++11)
Семейство адресов не поддерживается
(макрос-константа)
EAGAIN
(C++11)
Ресурс недоступен, повторите попытку
(макрос-константа)
EALREADY
(C++11)
Соединение уже выполняется
(макрос-константа)
EBADF
(C++11)
Неверный дескриптор файла
(макрос-константа)
EBADMSG
(C++11)
Некорректное сообщение
(макрос-константа)
EBUSY
(C++11)
Устройство или ресурс занят
(макроконстанта)
ECANCELED
(C++11)
Операция отменена
(макрос-константа)
ECHILD
(C++11)
Нет дочерних процессов
(макроконстанта)
ECONNABORTED
(C++11)
Соединение разорвано
(макрос-константа)
ECONNREFUSED
(C++11)
Соединение отклонено
(макрос-константа)
ECONNRESET
(C++11)
Соединение сброшено
(макрос-константа)
EDEADLK
(C++11)
Возникла бы взаимоблокировка ресурсов
(макроконстанта)
EDESTADDRREQ
(C++11)
Требуется адрес назначения
(макроконстанта)
EDOM
Аргумент математической функции вне области определения
(макроконстанта)
EEXIST
(C++11)
Файл уже существует
(макрос-константа)
EFAULT
(C++11)
Неверный адрес
(макрос-константа)
EFBIG
(C++11)
Файл слишком велик
(макрос-константа)
EHOSTUNREACH
(C++11)
Узел недостижим
(макроконстанта)
EIDRM
(C++11)
Идентификатор удален
(макроопределение)
EILSEQ
(C++11)
Недопустимая байтовая последовательность
(макрос-константа)
EINPROGRESS
(C++11)
Операция выполняется
(макрос-константа)
EINTR
(C++11)
Прерванная функция
(макрос-константа)
EINVAL
(C++11)
Неверный аргумент
(макрос-константа)
EIO
(C++11)
Ошибка ввода-вывода
(макрос-константа)
EISCONN
(C++11)
Сокет подключен
(макрос-константа)
EISDIR
(C++11)
Является директорией
(макрос-константа)
ELOOP
(C++11)
Слишком много уровней символьных ссылок
(макроконстанта)
EMFILE
(C++11)
Слишком большое значение файлового дескриптора
(макрос-константа)
EMLINK
(C++11)
Слишком много ссылок
(макрос-константа)
EMSGSIZE
(C++11)
Сообщение слишком большое
(макро-константа)
ENAMETOOLONG
(C++11)
Имя файла слишком длинное
(макрос-константа)
ENETDOWN
(C++11)
Сеть недоступна
(макрос-константа)
ENETRESET
(C++11)
Соединение разорвано сетью
(макроконстанта)
ENETUNREACH
(C++11)
Сеть недоступна
(макрос)
ENFILE
(C++11)
Слишком много файлов открыто в системе
(макрос-константа)
ENOBUFS
(C++11)
Недостаточно буферного пространства
(макро-константа)
ENODATA
(C++11)
На потоке head read queue нет доступных сообщений
(макрос-константа)
ENODEV
(C++11)
Нет такого устройства
(макрос-константа)
ENOENT
(C++11)
Файл или директория не существуют
(макрос-константа)
ENOEXEC
(C++11)
Ошибка формата исполняемого файла
(макроконстанта)
ENOLCK
(C++11)
Нет доступных блокировок
(макроконстанта)
ENOLINK
(C++11)
Связь разорвана
(макроконстанта)
ENOMEM
(C++11)
Недостаточно памяти
(макрос-константа)
ENOMSG
(C++11)
Нет сообщения требуемого типа
(макрос-константа)
ENOPROTOOPT
(C++11)
Протокол недоступен
(макрос-константа)
ENOSPC
(C++11)
На устройстве недостаточно места
(макрос-константа)
ENOSR
(C++11)
Нет ресурсов STREAM
(макро-константа)
ENOSTR
(C++11)
Не является STREAM
(макро-константа)
ENOSYS
(C++11)
Функция не поддерживается
(макрос-константа)
ENOTCONN
(C++11)
Сокет не подключен
(макрос-константа)
ENOTDIR
(C++11)
Не является директорией
(макрос-константа)
ENOTEMPTY
(C++11)
Каталог не пуст
(макрос-константа)
ENOTRECOVERABLE
(C++11)
Состояние невосстановимо
(макрос-константа)
ENOTSOCK
(C++11)
Не сокет
(макрос-константа)
ENOTSUP
(C++11)
Не поддерживается
(макрос-константа)
ENOTTY
(C++11)
Неподходящая операция управления вводом-выводом
(макроконстанта)
ENXIO
(C++11)
Нет такого устройства или адреса
(макроконстанта)
EOPNOTSUPP
(C++11)
Операция не поддерживается для сокета
(макрос-константа)
EOVERFLOW
(C++11)
Значение слишком велико для сохранения в типе данных
(макрос-константа)
EOWNERDEAD
(C++11)
Предыдущий владелец умер
(макрос-константа)
EPERM
(C++11)
Операция не разрешена
(макрос-константа)
EPIPE
(C++11)
Обрыв канала
(макрос-константа)
EPROTO
(C++11)
Ошибка протокола
(макрос-константа)
EPROTONOSUPPORT
(C++11)
Протокол не поддерживается
(макрос-константа)
EPROTOTYPE
(C++11)
Неправильный тип протокола для сокета
(макрос-константа)
ERANGE
Результат слишком велик
(макрос)
EROFS
(C++11)
Файловая система только для чтения
(макроконстанта)
ESPIPE
(C++11)
Некорректный поиск
(макро-константа)
ESRCH
(C++11)
Нет такого процесса
(макроконстанта)
ETIME
(C++11)
Таймаут Stream ioctl()
(макрос-константа)
ETIMEDOUT
(C++11)
Соединение разорвано по таймауту
(макрос-константа)
ETXTBSY
(C++11)
Текстовый файл занят
(макроконстанта)
EWOULDBLOCK
(C++11)
Операция была бы заблокирована
(макрос-константа)
EXDEV
(C++11)
Междисковое связывание
(макроконстанта)

Все значения должны быть уникальными, за исключением того, что значения EOPNOTSUPP и ENOTSUP могут быть идентичными, а значения EAGAIN и EWOULDBLOCK могут быть идентичными.

Пример

#include <cerrno>
#include <cstring>
#include <iomanip>
#include <iostream>
#define SHOW(x) std::cout << std::setw(15) << #x << ": " << std::strerror(x) << '\n'
int main()
{
    std::cout << "Известные коды ошибок и сообщения:\n\n";
    SHOW( E2BIG );
    SHOW( EACCES );
    SHOW( EADDRINUSE );
    SHOW( EADDRNOTAVAIL );
    SHOW( EAFNOSUPPORT );
    SHOW( EAGAIN );
    SHOW( EALREADY );
    SHOW( EBADF );
    SHOW( EBADMSG );
    SHOW( EBUSY );
    SHOW( ECANCELED );
    SHOW( ECHILD );
    SHOW( ECONNABORTED );
    SHOW( ECONNREFUSED );
    SHOW( ECONNRESET );
    SHOW( EDEADLK );
    SHOW( EDESTADDRREQ );
    SHOW( EDOM );
    SHOW( EEXIST );
    SHOW( EFAULT );
    SHOW( EFBIG );
    SHOW( EHOSTUNREACH );
    SHOW( EIDRM );
    SHOW( EILSEQ );
    SHOW( EINPROGRESS );
    SHOW( EINTR );
    SHOW( EINVAL );
    SHOW( EIO );
    SHOW( EISCONN );
    SHOW( EISDIR );
    SHOW( ELOOP );
    SHOW( EMFILE );
    SHOW( EMLINK );
    SHOW( EMSGSIZE );
    SHOW( ENAMETOOLONG );
    SHOW( ENETDOWN );
    SHOW( ENETRESET );
    SHOW( ENETUNREACH );
    SHOW( ENFILE );
    SHOW( ENOBUFS );
    SHOW( ENODATA );
    SHOW( ENODEV );
    SHOW( ENOENT );
    SHOW( ENOEXEC );
    SHOW( ENOLCK );
    SHOW( ENOLINK );
    SHOW( ENOMEM );
    SHOW( ENOMSG );
    SHOW( ENOPROTOOPT );
    SHOW( ENOSPC );
    SHOW( ENOSR );
    SHOW( ENOSTR );
    SHOW( ENOSYS );
    SHOW( ENOTCONN );
    SHOW( ENOTDIR );
    SHOW( ENOTEMPTY );
    SHOW( ENOTRECOVERABLE );
    SHOW( ENOTSOCK );
    SHOW( ENOTSUP );
    SHOW( ENOTTY );
    SHOW( ENXIO );
    SHOW( EOPNOTSUPP );
    SHOW( EOVERFLOW );
    SHOW( EOWNERDEAD );
    SHOW( EPERM );
    SHOW( EPIPE );
    SHOW( EPROTO );
    SHOW( EPROTONOSUPPORT );
    SHOW( EPROTOTYPE );
    SHOW( ERANGE );
    SHOW( EROFS );
    SHOW( ESPIPE );
    SHOW( ESRCH );
    SHOW( ETIME );
    SHOW( ETIMEDOUT );
    SHOW( ETXTBSY );
    SHOW( EWOULDBLOCK );
    SHOW( EXDEV );
}

Возможный вывод:

Известные коды/сообщения ошибок:
          E2BIG: Список аргументов слишком длинный
         EACCES: Доступ запрещен
     EADDRINUSE: Адрес уже используется
  EADDRNOTAVAIL: Невозможно назначить запрошенный адрес
   EAFNOSUPPORT: Семейство адресов не поддерживается протоколом
         EAGAIN: Ресурс временно недоступен
       EALREADY: Операция уже выполняется
          EBADF: Неверный дескриптор файла
        EBADMSG: Неверное сообщение
          EBUSY: Устройство или ресурс занят
      ECANCELED: Операция отменена
         ECHILD: Нет дочерних процессов
   ECONNABORTED: Программное прерывание соединения
   ECONNREFUSED: Соединение отклонено
     ECONNRESET: Соединение разорвано узлом
        EDEADLK: Удалось избежать взаимной блокировки ресурсов
   EDESTADDRREQ: Требуется адрес назначения
           EDOM: Числовой аргумент вне области определения
         EEXIST: Файл уже существует
         EFAULT: Неверный адрес
          EFBIG: Файл слишком большой
   EHOSTUNREACH: Маршрут до узла не найден
          EIDRM: Идентификатор удален
         EILSEQ: Недопустимый или неполный многобайтовый или широкий символ
    EINPROGRESS: Операция выполняется
          EINTR: Системный вызов прерван
         EINVAL: Неверный аргумент
            EIO: Ошибка ввода/вывода
        EISCONN: Конечная точка транспорта уже подключена
         EISDIR: Является каталогом
          ELOOP: Слишком много уровней символических ссылок
         EMFILE: Слишком много открытых файлов
         EMLINK: Слишком много ссылок
       EMSGSIZE: Сообщение слишком длинное
   ENAMETOOLONG: Имя файла слишком длинное
       ENETDOWN: Сеть не работает
      ENETRESET: Сеть разорвала соединение при сбросе
    ENETUNREACH: Сеть недоступна
         ENFILE: Слишком много открытых файлов в системе
        ENOBUFS: Нет доступного буферного пространства
        ENODATA: Нет доступных данных
         ENODEV: Нет такого устройства
         ENOENT: Нет такого файла или каталога
        ENOEXEC: Ошибка формата исполняемого файла
         ENOLCK: Нет доступных блокировок
        ENOLINK: Связь разорвана
         ENOMEM: Невозможно выделить память
         ENOMSG: Нет сообщения требуемого типа
    ENOPROTOOPT: Протокол недоступен
         ENOSPC: Нет свободного места на устройстве
          ENOSR: Исчерпаны ресурсы потоков
         ENOSTR: Устройство не является потоком
         ENOSYS: Функция не реализована
       ENOTCONN: Конечная точка транспорта не подключена
        ENOTDIR: Не является каталогом
      ENOTEMPTY: Каталог не пуст
ENOTRECOVERABLE: Состояние невосстановимо
       ENOTSOCK: Операция с сокетом на не-сокете
        ENOTSUP: Операция не поддерживается
         ENOTTY: Неподходящий ioctl для устройства
          ENXIO: Нет такого устройства или адреса
     EOPNOTSUPP: Операция не поддерживается
      EOVERFLOW: Значение слишком велико для определенного типа данных
     EOWNERDEAD: Владелец умер
          EPERM: Операция не разрешена
          EPIPE: Разорванный канал
         EPROTO: Ошибка протокола
EPROTONOSUPPORT: Протокол не поддерживается
     EPROTOTYPE: Неверный тип протокола для сокета
         ERANGE: Числовой результат вне диапазона
          EROFS: Файловая система только для чтения
         ESPIPE: Недопустимый поиск
          ESRCH: Нет такого процесса
          ETIME: Таймер истек
      ETIMEDOUT: Таймаут соединения
        ETXTBSY: Текстовый файл занят
    EWOULDBLOCK: Ресурс временно недоступен
          EXDEV: Недопустимая межустройственная ссылка

Смотрите также

(C++11)
перечисление std::error_condition содержащее все стандартные макроконстанты <cerrno>
(класс)
макрос, раскрывающийся в POSIX-совместимую thread-local переменную номера ошибки
(макропеременная)
выводит строку символов, соответствующую текущей ошибке, в stderr
(функция)
возвращает текстовое описание заданного кода ошибки
(функция)
C documentation для Error numbers