Spec-Zone.ru › C++

Номера ошибок

Каждый из макросов, определённых в <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)
Недопустимое позиционирование
(макроконстанта)
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 << "Known error codes/messages:\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 );
}

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

Known error codes/messages:

          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

См. также

errc
(C++11)
перечисление std::error_condition, содержащее все стандартные макроконстанты ошибок <cerrno>
(класс)
errno
макрос, раскрывающийся в совместимую с POSIX переменную номера ошибки, локальную для потока
(макропеременная)
perror
выводит строку символов, соответствующую текущей ошибке, в stderr
(функция)
strerror
возвращает текстовое описание заданного кода ошибки
(функция)
Документация C для номеров ошибок

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/error/errno_macros

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API