Список кодов и сообщений об ошибках
Ниже приведен список сообщений об ошибках системных вызовов. Он основан на информации выпуска 4.2 стандарта X/Open System Interfaces Standard (стандарта системных интерфейсов X/Open). Каждый пункт списка озаглавлен мнемоническим сокращением имени ошибки, определенным соответствующим кодом ошибки в файле linuxerror, и содержит системное сообщение об ошибке из таблицы sys_errlist, а также краткое ее описание. Обратите внимание, что текст сообщения об ошибке может меняться в зависимости от установки параметра LC_MESSAGES текущей локализации
(locale).
Sys_E2BIG | Слишком длинный список аргумента (Argument list too long). Чаще всего означает, что вызову ехес передается слишком длинный (согласно полному числу байтов) список аргументов | ||
Sys_EACCES | Нет доступа (Permission denied). Произошла ошибка, связанная с отсутствием прав доступа. Может происходить при выполнении системных вызовов fdopen, link, fdcreat и аналогичных им. Может также генерироваться вызовом ехес, если отсутствует доступ на выполнение |
| |
Sys_EADDRINUSE | Адрес уже используется
(Address in use). Означает, что запрошенный программой адрес уже используется | ||
Sys_EADDRNOTAVAIL | Адрес недоступен (Address not available). Эта ошибка может возникать, если программа запрашивает адрес, который уже используется процессом | ||
Sys_Sys_EAFNOSUPPORT | Семейство адресов не поддерживается (Address family not supported). При использовании интерфейса вызова сокетов было задано семейство адресов, которое не поддерживается системой | ||
Sys_EAGAIN | Ресурс временно недоступен, следует повторить попытку позже (Resource temporarily unavailable, try again later). Обычно означает переполнение некоторой системной таблицы. Эта ошибка может генерироваться вызовом fork (если слишком много процессов) и вызовами межпроцессного взаимодействия (если слишком много объектов одного из типов межпроцессного взаимодействия) | ||
Sys_EALREADY | Соединение устанавливается (Connection already in progress). Означает отказ при попытке установления соединения из-за того, что этот сокет уже находится в состоянии установления соединения | ||
Sys_EBADF | Недопустимый дескриптор файла
(Bad file descriptor). Файловый дескриптор не соответствует открытому файлу или же установленный режим доступа (только для чтения или только для записи) не позволяет выполнить нужную операцию. Генерируется многими вызовами, например, fdread и fdwrite | ||
Sys_EBADMSG | Недопустимое сообщение (Bad message). (Данная ошибка связана с архитектурой модулей STREAM.) Генерируется, если системный вызов получает сообщение потока, которое не может прочитать. Может, например, генерироваться, если вызов fdread был выполнен для чтения в обход модуля STREAM, и в результате было получено управляющее сообщение STREAM, а не сообщение с данными | ||
Sys_EBUSY | Занято устройство или ресурс (Device or resource busy). Может генерироваться, например, если вызов rmdir пытается удалить каталог, который используется другим процессом | ||
Sys_ECHILD | Нет дочерних процессов (No child processes). Был выполнен вызов wait или waitpid, но соответствующий дочерний процесс не существует | ||
Sys_ECONNABORTED | Соединение разорвано (Connection aborted). Сетевое соединение было разорвано по неопределенной причине | ||
Sys_ECONNREFUSED | Отказ в установке соединения (Connection refused). Очередь запросов переполнена или ни один процесс не принимает запросы на установку соединения | ||
Sys_ECONNRESET | Сброс соединения (Connection reset). Соединение было закрыто другим процессом | ||
Sys_EDEADLK | Предотвращен клинч (Resource deadlock would occur). В случае успешного выполнения вызова произошел бы клинч (то есть ситуация, когда два процесса ожидали бы действия друг от друга). Эта ошибка может возникать в результате вызовов fcntl и lockf | ||
Sys_EDESTADDRREQ | Требуется адрес назначения (Destination request required). При выполнении операции с сокетом был опущен адрес назначения | ||
Sys_EDOM | Ошибка диапазона (Domain error). Ошибка пакета математических процедур. Означает, что аргумент функции выходит за границы области определения этой функции. Может возникать во время выполнения функций семейств trig, exp, gamma и др. | ||
Sys_EDQUOT | Зарезервирован (Reserved) | ||
Sys_EEXIST | Файл уже существует
(File exists). Файл уже существует, и это препятствует успешному завершению вызова. Может возникать во время выполнения вызовов link, mkdir, mkfifo, shmget и fdopen | ||
Sys_EFAULT | Недопустимый адрес (Bad address). Генерируется системой после ошибки защиты памяти. Обычно означает, что был задан некорректный адрес памяти. Не все системы могут отслеживать ошибки памяти и сообщать о них процессам | ||
Sys_EFBIG | Слишком большой файл
(File too large). При попытке увеличить размер файла было превышено максимальное значение размера файла для процесса (установленное вызовом ulimit) или общесистемное максимальное значение размера файла | ||
Sys_EHOSTUNREACH | Компьютер недоступен (Host is unreachable). Генерируется сетью, если компьютер выключен или недоступен для маршрутизатора | ||
Sys_EIDRM | Идентификатор удален
(Identifier removed). Означает, что идентификатор межпроцессного взаимодействия, например, идентификатор разделяемой памяти, был удален из системы при помощи команды ipcrm | ||
Sys_EILSEQ | Недопустимая последовательность байтов (Illegal byte sequence). Недопустимый символ (не все возможные «широкие» символы являются допустимыми). Эта ошибка может возникать во время вызова fprintf или fscanf | ||
Sys_EINPROGRESS | Соединение в процессе установки (Connection in progress). Означает, что вызов запроса соединения принят и будете выполнен. Данный код выставляется при вызове connect с флагом Open_NONBLOCK | ||
Sys_EINTR | Прерванный вызов функции (Interrupted function call). Возвращается при поступлении сигнала во время выполнения системного вызова. (Возникает только во время выполнения некоторых вызовов – обратитесь к документации системы) | ||
Sys_EINVAL | Недопустимый аргумент (Invalid argument). Означает, что системному вызову был передан недопустимый параметр или список параметров. Может генерироваться вызовами fcntl, sigaction, некоторыми процедурами межпроцессного взаимодействия, а также математическими функциями | ||
Sys_ЕIO | Ошибка ввода/вывода
(I/O error). Во время ввода/вывода произошла физическая ошибка | ||
Sys_EISCONN | Сокет подключен (Socket is connected). Этот сокет уже соединен | ||
Sys_EISDIR | Это каталог (Is a directory). Была выполнена попытка открыть каталог для записи. Эта ошибка генерируется вызовами fdopen, fdread или frename | ||
Sys_ELOOP | Слишком много уровней символьных ссылок (Too many levels of symbolic links). Возвращается, если системе приходится обойти слишком, много символьных ссылок при попытке найти файл в каталоге. Эта ошибка может генерироваться любым системным вызовом, принимающим в качестве параметра имя файла | ||
Sys_EMFILE | Слишком много открытых процессом файлов (Too many open files in a process). Происходит в момент открытия файла и означает, что процессом открыто максимально возможное число файлов, заданное постоянной OPEN_MAX в файле <limits.h> | ||
Sys_EMLINK | Слишком много ссылок
(Too many links). Генерируется вызовом link, если с файлом связано максимально возможное число жестких ссылок, заданное постоянной LINK_MAX в файле <limits.h> | ||
Sys_EMSGSIZE | Слишком большое сообщение
(Message too large). Генерируется в сети, если посланное сообщение слишком велико, чтобы поместиться во внутреннем буфере приемника | ||
Sys_EMULTIHOP | Зарезервирован (Reserved) | ||
Sys_ENAMETOOLONG | Слишком длинное имя файла (Filename too long). Может означать, что имя файла длиннее NAME_MAX или полное маршрутное имя файла превышает значение РАТН_МАХ. Выставляется любым системным вызовом, принимающим в качестве параметра имя файла или полное маршрутное имя | ||
Sys_ENETDOWN | Сеть не работает (Network is down) | ||
Sys_ENETUNREACH | Сеть недоступна (Network unreachable). Путь к указанной сети недоступен | ||
Sys_ENFILE | Переполнение таблицы файлов
(File table overflow). Генерируется вызовами, которые возвращают дескриптор открытого файла (такими, как fdcreat, fdopen и pipe). Это означает, что внутренняя таблица ядра переполнена, и нельзя открыть новые дескрипторы файлов | ||
Sys_ENOBUFS | Нет места в буфере (No buffer space is available). Относится к сокетам. Это сообщение об ошибке выводится, если при выполнении любого из вызовов, работающих с сокетами, система не способна нарастить буферы данных | ||
Sys_ENODATA | Сообщение отсутствует (No message available). (Данная ошибка связана с архитектурой модулей STREAM.) Возвращается вызовом fdread, если в модуле STREAM нет сообщений | ||
Sys_ENODEV | Устройство не существует
(No such device). Была сделана попытка выполнить недопустимый системный вызов для устройства (например, чтение для устройства, открытого только для записи) | ||
Sys_ENOENT | Файл или каталог не существует (No such file or directory). Эта ошибка происходит, если файл, заданный полным маршрутным именем (например, при выполнении вызова fdopen), не существует или не существует один из каталогов в пути | ||
Sys_ENOEXEC | Ошибка формата Exec
(Ехес format error). Формат запускаемой программы не является допустимым форматом исполняемой программы. Эта ошибка возникает во время вызова ехес | ||
Sys_ENOLCK | Нет свободных блокировок (No locks available). Больше нет свободных блокировок, которые можно было бы установить при помощи вызова fcntl | ||
Sys_ENOLINK | Зарезервирован (Reserved) | ||
Sys_ENOMEM | Нет места в памяти (Not enough space). Ошибка нехватки памяти происходит, если процессу требуется больше памяти, чем может обеспечить система. Может генерироваться вызовами ехес, fork и процедурами brk и sbrk, которые используются библиотекой управления динамической памятью | ||
Sys_ENOMSG | Нет сообщений нужного типа (No message of the desired type). Возвращается, если вызов msgrcv не может найти сообщение нужного типа в очереди сообщений | ||
Sys_ENOPROTOOPT | Протокол недоступен (Protocol not available). Запрошенный протокол не поддерживается системным вызовом socket | ||
Sys_ENOSPC | Исчерпано свободное место на устройстве (No space left on device). Устройство заполнено, и увеличение размера файла или создание элемента каталога невозможно. Может генерироваться вызовами write, fdcreat, fdopen, mknod или link | ||
Sys_ENOSR | Нет ресурсов потоков (No streams resources). (Данная ошибка связана с архитектурой модулей STREAM.) Bpeменное состояние, о котором сообщается, если ресурсы памяти модуля STREAM не позволяют в данный момент передать сообщение | ||
Sys_ENOSTR | Это не STREAM (not a STREAM). (Данная ошибка связана с архитектурой модулей STREAM) Возвращается, если функция работы с модулем STREAM, такая как операция «push» функции ioctl, вызывается для устройства, которое не является устройством, представленным модулями STREAM | ||
Sys_ENOSYS | Функция не реализована (Function not implemented). Означает, что запрошен системный вызов, не реализованный в данной версии системы | ||
Sys_ENOTCONN | Сокет не подключен (Socket not connected). Эта ошибка генерируется, если для неподключенного сокета выполняется вызов sendmsg или rcvmsg | ||
Sys_ENOTDIR | Это не каталог (Not a directory). Возникает, если путь не представляет имя каталога. Может устанавливаться вызовами chdir, mkdir, link и многими другими | ||
Sys_ENOTEMPTY | Каталог не пуст (Directory not empty). Возвращается, например, вызовом rmdir, если делается попытка удалить непустой каталог | ||
Sys_ENOTSOCK | Это не сокет (Not a socket). Дескриптор файла, используемый в вызове для работы с сетью, например, вызове connect, не является дескриптором сокета | ||
Sys_ENOTTY | Не символьное устройство (Not a character device). Был выполнен вызов ioctl для открытого файла, который не является символьным устройством | ||
Sys_ENXIO | Устройство или адрес не существует (No such device or address). Происходит, если выполняется попытка получить доступ к несуществующему устройству или адресу устройства. Эта ошибка может возникать при доступе к отключенному устройству | ||
Sys_EOPNOTSUPP | Операция не поддерживается сокетом (Operation not supported on a socket). Связанное с сокетом семейство адресов не поддерживает данной функции | ||
Sys_EOVERFLOW | Значение не может уместиться в типе данных (Value too large to be stored in the data type) | ||
Sys_EPERM | Запрещенная операция (Operation not permitted). Означает, что процесс пытался выполнить действие, разрешенное только владельцу файла или суперпользователю (root) | ||
Sys_EPIPE | Разрыв связи в канале
(Broken pipe). Устанавливается вызовом fdwrite и означает, что была выполнена попытка осуществить запись в канал, который не открыт на чтение ни одним процессом. Обычно при этом процесс, выполняющий запись в канал, прерывается при помощи сигнала SIGPIPE. Код ошибки EPIPE устанавливается, только если сигнал SIGPIPE перехватывается, игнорируется или блокируется | ||
Sys_EPROTO | Ошибка протокола
(Protocol error). Эта ошибка зависит от устройства и означает, что была получена ошибка протокола | ||
Sys_EPROTONOSUPPORT | Протокол не поддерживается
(Protocol not supported). Возвращается системным вызовом socket, если семейство адресов не поддерживается системой | ||
Sys_EPROTOTYPE | Тип сокета не поддерживается (Socket type not supported). Возвращается вызовом socket, если заданный тип протокола, такой как SOCK_DGRAM, не поддерживается системой | ||
Sys_ERANGE | Результат слишком велик или слишком мал (Result too large or too small). Эта ошибка возникает при вызове математических функций и означает, что возвращаемое функцией значение не может быть представлено на процессоре компьютера | ||
Sys_EROFS | Файловая система доступна только для чтения (Readonly file system). Была выполнена попытка осуществить вызов fdwrite или изменить элемент каталога для файловой системы, которая была смонтирована в режиме только для чтения | ||
Sys_ESPIPE | Некорректное позиционирование
(Illegal seek). Для канала была предпринята попытка вызова fdseek | ||
Sys_ESRCH | Процесс не существует
(No such process). Задан несуществующий процесс. Генерируется вызовом kill | ||
Sys_ESTALE | Зарезервирован (Reserved) | ||
Sys_ETIME | Таймаут вызова ioctl для модуля STREAM (ioctl timeout on a STREAM). (Данная ошибка связана с архитектурой модулей STREAM.) Показывает, что истекло время ожидания вызова ioctl для модуля ядра STREAM. Это может означать, что период ожидания нужно увеличить | ||
Sys_ETIMEDOUT | Истекло время ожидания соединения (Connection timed out). Когда процесс пытается установить соединение с другой системой, то заданное время ожидания может истечь, если эта система не включена или перегружена запросами на установку соединения | ||
Sys_ETXTBSY | Файл программного кода занят (Text file busy). Если ошибка генерируется вызовом ехес, то это означает, что была выполнена попытка запустить на выполнение исполняемый файл, открытый для записи. Если же она генерируется вызовом, возвращающим дескриптор файла, то была сделана попытка открыть на запись файл программы, которая в данный момент выполняется | ||
Sys_EWOULDBLOCK | Операция привела бы к блокировке (Operation would block). Эта ошибка возвращается, если дескриптор ввода/вывода был открыт как не блокируемый и был выполнен запрос записи или чтения, который в обычных условиях был бы заблокирован. В соответствии со спецификацией XSI код ошибки EWOULDBLOCK должен иметь то же значение, что и SYS_EAGAIN | ||
Sys_EXDEV | Попытка создания ссылки между устройствами (Cross-device link). Возникает, если выполняется попытка связать при помощи вызова link файлы в разных файловых системах |