◐ Shell
clean mode source ↗

Номера ошибок — cppreference.com

Каждый из макросов, определённый в <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)

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

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)

Неверный seek
(макроконстанта)

ESRCH

(C++11)

Нет такого процесса
(макроконстанта)

ETIME

(C++11)

Тайм-аут потока 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: Argument list too long
         EACCES: Permission denied
     EADDRINUSE: Address already in use
  EADDRNOTAVAIL: Cannot assign requested address
   EAFNOSUPPORT: Address family not supported by protocol
         EAGAIN: Resource temporarily unavailable
       EALREADY: Operation already in progress
          EBADF: Bad file descriptor
        EBADMSG: Bad message
          EBUSY: Device or resource busy
      ECANCELED: Operation canceled
         ECHILD: No child processes
   ECONNABORTED: Software caused connection abort
   ECONNREFUSED: Connection refused
     ECONNRESET: Connection reset by peer
        EDEADLK: Resource deadlock avoided
   EDESTADDRREQ: Destination address required
           EDOM: Numerical argument out of domain
         EEXIST: File exists
         EFAULT: Bad address
          EFBIG: File too large
   EHOSTUNREACH: No route to host
          EIDRM: Identifier removed
         EILSEQ: Invalid or incomplete multibyte or wide character
    EINPROGRESS: Operation now in progress
          EINTR: Interrupted system call
         EINVAL: Invalid argument
            EIO: Input/output error
        EISCONN: Transport endpoint is already connected
         EISDIR: Is a directory
          ELOOP: Too many levels of symbolic links
         EMFILE: Too many open files
         EMLINK: Too many links
       EMSGSIZE: Message too long
   ENAMETOOLONG: File name too long
       ENETDOWN: Network is down
      ENETRESET: Network dropped connection on reset
    ENETUNREACH: Network is unreachable
         ENFILE: Too many open files in system
        ENOBUFS: No buffer space available
        ENODATA: No data available
         ENODEV: No such device
         ENOENT: No such file or directory
        ENOEXEC: Exec format error
         ENOLCK: No locks available
        ENOLINK: Link has been severed
         ENOMEM: Cannot allocate memory
         ENOMSG: No message of desired type
    ENOPROTOOPT: Protocol not available
         ENOSPC: No space left on device
          ENOSR: Out of streams resources
         ENOSTR: Device not a stream
         ENOSYS: Function not implemented
       ENOTCONN: Transport endpoint is not connected
        ENOTDIR: Not a directory
      ENOTEMPTY: Directory not empty
ENOTRECOVERABLE: State not recoverable
       ENOTSOCK: Socket operation on non-socket
        ENOTSUP: Operation not supported
         ENOTTY: Inappropriate ioctl for device
          ENXIO: No such device or address
     EOPNOTSUPP: Operation not supported
      EOVERFLOW: Value too large for defined data type
     EOWNERDEAD: Owner died
          EPERM: Operation not permitted
          EPIPE: Broken pipe
         EPROTO: Protocol error
EPROTONOSUPPORT: Protocol not supported
     EPROTOTYPE: Protocol wrong type for socket
         ERANGE: Numerical result out of range
          EROFS: Read-only file system
         ESPIPE: Illegal seek
          ESRCH: No such process
          ETIME: Timer expired
      ETIMEDOUT: Connection timed out
        ETXTBSY: Text file busy
    EWOULDBLOCK: Resource temporarily unavailable
          EXDEV: Invalid cross-device link

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

перечисление std::error_condition, в котором перечислены все стандартные макроконстанты <cerrno>
(класс) [править]
макрос, который расширяется до переменной номера локальной ошибки потока, совместимой с POSIX
(macro variable) [править]
выводит строку символов, соответствующую текущей ошибке, в stderr
(функция) [править]
возвращает текстовую версию данного кода ошибки
(функция) [править]