Номера ошибок
Каждый из макросов, определённых в <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
См. также
|
(C++11) | перечисление std::error_condition, содержащее все стандартные макроконстанты ошибок <cerrno> (класс) |
| макрос, раскрывающийся в совместимую с POSIX переменную номера ошибки, локальную для потока (макропеременная) |
|
выводит строку символов, соответствующую текущей ошибке, в stderr (функция) |
|
| возвращает текстовое описание заданного кода ошибки (функция) |
|
| Документация C для номеров ошибок | |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/error/errno_macros