Поделиться через


errno Константы

Синтаксис

#include <errno.h>

Замечания

Константы errno — это значения, назначенные errno для различных условий ошибки.

ERRNO.H содержит определения значений errno . Однако в 32-разрядных операционных системах Windows используются не все определения ERRNO.H . Некоторые из значений присутствуют ERRNO.H для обеспечения совместимости с семейством операционных систем UNIX. Значения errno в 32-разрядной операционной системе Windows — это подмножество значений для errno систем UNIX.

Значение errno не обязательно совпадает с фактическим кодом ошибки, возвращаемым системным вызовом из операционной системы Windows. Чтобы получить доступ к фактическому коду ошибки операционной системы, используйте _doserrno переменную, содержащую это значение.

Поддерживаются следующие errno значения:

Константа Description Значение
E2BIG Список аргументов слишком длинный. 7
EACCES в разрешении отказано. Параметр разрешения файла не разрешает указанный доступ. Предпринята попытка получить доступ к файлу (или, в некоторых случаях, каталог) таким образом, что несовместимо с атрибутами файла.

Например, ошибка может возникать при попытке считывания из файла, который не открыт. Или при попытке открыть существующий файл только для чтения для записи или открыть каталог вместо файла. В операционных системах MS-DOS версии 3.0 и более поздних EACCES версий также может указываться нарушение блокировки или совместного использования.

Ошибка может также возникать при попытке переименовать файл или каталог или при попытке удалить существующий каталог.
13
EAGAIN Больше процессов или недостаточно памяти или максимального уровня вложения не достигнуто. Попытка создать новый процесс завершилась сбоем, так как нет дополнительных слотов процесса или недостаточно памяти или достигнут максимальный уровень вложения. 11
EBADF Неверный номер файла. Существует две возможные причины: 1) Указанный дескриптор файла не является допустимым значением или не ссылается на открытый файл. 2) Предпринята попытка записи в файл или устройство, которые были открыты только для чтения. 9
EBUSY Занято устройство или ресурс. 16
ECHILD Нет порожденных процессов. 10
EDEADLK Может произойти взаимоблокировка ресурсов. 36
EDEADLOCK EDEADLK Аналогично совместимости со старыми версиями Microsoft C. 36
EDOM Математический аргумент. Аргумент математической функции не в домене функции. 33
EEXIST Файлы существуют. Предпринята попытка создать файл, который уже существует. Например, _O_CREAT в вызове указаны _open флаги и _O_EXCL флаги, но именованный файл уже существует. 17
EFAULT Недопустимый адрес. 14
EFBIG Слишком большой файл. 27
EILSEQ Недопустимая последовательность байтов (например, в строке MBCS ). 42
EINTR Прерванная функция. 4
EINVAL Недопустимый аргумент. Для одного из аргументов функции указано недопустимое значение. Например, значение, заданное для источника при расположении указателя файла (вызовом fseek) до начала файла. 22
EIO Ошибка ввода-вывода. 5
EISDIR Каталог. 21
EMFILE Слишком много открытых файлов. Нет доступных дескрипторов файлов, поэтому невозможно открыть дополнительные файлы. 24
EMLINK Слишком много ссылок. 31
ENAMETOOLONG Слишком длинное имя файла. 38
ENFILE Слишком много файлов, открытых в системе. 23
ENODEV Нет такого устройства. 19
ENOENT Отсутствует такой файл или каталог. Указанный файл или каталог не существует или не найден. Это сообщение может возникать всякий раз, когда указанный файл не существует, или компонент пути не указывает существующий каталог. 2
ENOEXEC Ошибка формата исполняемого файла. Предпринята попытка выполнить файл, который не является исполняемым или имеет недопустимый формат исполняемого файла. 8
ENOLCK Блокировки недоступны. 39
ENOMEM Недостаточно памяти для выполнения запрошенного оператора. Например, это сообщение может возникать, если недостаточно памяти доступно для выполнения дочернего процесса или когда запрос на выделение в _getcwd вызове не может быть удовлетворен. 12
ENOSPC На устройстве не осталось места. На устройстве нет больше доступного для записи места (например, при полном заполнении диска). 28
ENOSYS Функция не поддерживается. 40
ENOTDIR Не каталог. 20
ENOTEMPTY Каталог не пуст. 41
ENOTTY Неуместная операция управления ввода-вывода. 25
ENXIO Нет такого устройства или адреса. 6
EPERM Операция не разрешена. 1
EPIPE Сломанная труба. 32
ERANGE Результат слишком большой. Аргумент математической функции слишком велик, что приведет к частичной или полной потере значимости результата. Эта ошибка также может возникать в других функциях, если аргумент больше ожидаемого (например, если buffer аргумент _getcwd больше ожидаемого). 34
EROFS Только для чтения файловой системы. 30
ESPIPE Недопустимый поиск. 29
ESRCH Нет такого процесса. 3
EXDEV Ссылка между устройствами. Предпринята попытка переместить файл на другое устройство (с помощью rename функции). 18
STRUNCATE Копирование или объединение строк привело к усечению строки. См. раздел _TRUNCATE. 80

Следующие значения поддерживаются для совместимости с POSIX:

Константа Description Значение
EADDRINUSE Адрес, используемый. 100
EADDRNOTAVAIL Адрес недоступен. 101
EAFNOSUPPORT Семейство адресов не поддерживается. 102
EALREADY Подключение уже выполняется. 103
EBADMSG Плохое сообщение. 104
ECANCELED Операция отменена. 105
ECONNABORTED Подключение прервано. 106
ECONNREFUSED Подключение отказано. 107
ECONNRESET Сброс подключения. 108
EDESTADDRREQ Обязательный адрес назначения. 109
EHOSTUNREACH Недоступен узел. 110
EIDRM Идентификатор удален. 111
EINPROGRESS Выполняется операция. 112
EISCONN Уже подключено. 113
ELOOP Слишком много уровней символьной связи. 114
EMSGSIZE Размер сообщения. 115
ENETDOWN Сеть вниз. 116
ENETRESET Сброс сети. 117
ENETUNREACH Недоступен сетевой доступ. 118
ENOBUFS Нет буферного пространства. 119
ENODATA Сообщение недоступно. 120
ENOLINK Нет ссылки. 121
ENOMSG Нет сообщения. 122
ENOPROTOOPT Нет параметра протокола. 123
ENOSR Нет потоковой передачи ресурсов. 124
ENOSTR Не поток. 125
ENOTCONN Отсутствует соединение. 126
ENOTRECOVERABLE Состояние недоступно для восстановления. 127
ENOTSOCK Не сокет. 128
ENOTSUP Не поддерживается. 129
EOPNOTSUPP Операция не поддерживается. 130
EOTHER Другое. 131
EOVERFLOW Слишком большое значение. 132
EOWNERDEAD Владелец умер. 133
EPROTO Ошибка протокола. 134
EPROTONOSUPPORT Протокол не поддерживается. 135
EPROTOTYPE Неправильный тип протокола. 136
ETIME Время ожидания потока. 137
ETIMEDOUT Истекло время ожидания. 138
ETXTBSY Текстовый файл занят. 139
EWOULDBLOCK Операция будет блокироваться. 140

См. также

Глобальные константы