Linux программирование в примерах | страница 74
может быть макросом, который действует подобно переменной
>int
— она не обязательно является действительной целой переменной. В частности, в многопоточном окружении у каждого потока будет своя индивидуальная версия >errno
. Несмотря на это, практически для всех системных вызовов и функций в данной книге вы можете рассматривать >errno
как простую >int
.4.3.1. Значения >errno
Стандарт POSIX 2001 определяет большое число возможных значений для errno. Многие из них относятся к сетям, IPC или другим специальным задачам. Справочная страница для каждого системного вызова описывает возможные значения >errno
, которые могут иметь место; поэтому вы можете написать код для проверки отдельных ошибок и соответствующим образом обработать их, если это нужно. Возможные значения определены через символические имена. Предусмотренные GLIBC значения перечислены в табл. 4.1.
Таблица 4.1. Значения GLIBC для >errno
Имя | Значение |
---|---|
>E2BIG | Слишком длинный список аргументов |
>EACCESS | Доступ запрещен |
>EADDRINUSE | Адрес используется |
>EADDRNOTAVAIL | Адрес недоступен |
>EAFNOSUPPORT | Семейство адресов не поддерживается |
>EAGAIN | Ресурс недоступен, попытайтесь снова (может быть то же самое значение, что >EWOULDBLOCK ). |
>EALREADY | Соединение уже устанавливается |
>EBADF | Ошибочный дескриптор файла. |
>EBADMSG | Ошибочное сообщение. |
>EBUSY | Устройство или ресурс заняты |
>ECANCELED | Отмена операции. |
>ECHILD | Нет порожденного процесса. |
>ECONNABORTED | Соединение прервано |
>ECONNFRFUSED | Соединение отклонено |
>ECONNRESET | Восстановлено исходное состояние соединения. |
>EDEADLK | Возможен тупик (deadlock) в запросе ресурса. |
>EDESTADDRREQ | Требуется адрес назначения |
>EDOM | Математический аргумент выходит за область определения функции |
>EDQUOT | Зарезервировано. |
>EEXIST | Файл существует. |
>EFAULT | Ошибочный адрес. |
>EFBIG | Файл слишком большой. |
>EHOSTUNREACH | Хост недоступен. |
>EIDRM | Идентификатор удален |
>EILSEQ | Ошибочная последовательность байтов. |
>EINPROGRESS | Операция исполняется. |
>EINTR | Прерванная функция. |
>EINVAL | Недействительный аргумент. |
>EIO | Ошибка ввода/вывода. |
>EISCONN | Сокет (уже) соединен. |
>EISDIR | Это каталог. |
>ELOOP | Слишком много уровней символических ссылок. |
>EMFILE | Слишком много открытых файлов. |
>EMLINK | Слишком много ссылок. |
>EMSGSIZE | Сообщение слишком длинное. |
>EMULTIHOP | Зарезервировано. |
>ENAMETOOLONG | Имя файла слишком длинное |
>ENETDOWN | Сеть не работает |
>ENETRESET | Соединение прервано сетью |
>ENETUNREACH | Сеть недоступна. |
>ENFILE | В системе открыто слишком много файлов. |
>ENOBUFS | Буферное пространство недоступно. |
>ENODEV | Устройство отсутствует |
>ENOENT | Файл или каталог отсутствуют |
Книги, похожие на Linux программирование в примерах