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 |