Linux программирование в примерах
Часть 35 из 253 Информация о книге
4.3.1. Значения
errnoСтандарт POSIX 2001 определяет большое число возможных значений для errno. Многие из них относятся к сетям, IPC или другим специальным задачам. Справочная страница для каждого системного вызова описывает возможные значения
, которые могут иметь место; поэтому вы можете написать код для проверки отдельных ошибок и соответствующим образом обработать их, если это нужно. Возможные значения определены через символические имена. Предусмотренные GLIBC значения перечислены в табл. 4.1.errnoТаблица 4.1. Значения GLIBC для
errno
Имя Значение E2BIGСлишком длинный список аргументов EACCESSДоступ запрещен EADDRINUSEАдрес используется EADDRNOTAVAILАдрес недоступен EAFNOSUPPORTСемейство адресов не поддерживается EAGAINРесурс недоступен, попытайтесь снова (может быть то же самое значение, что ).EWOULDBLOCKEALREADYСоединение уже устанавливается 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Файл или каталог отсутствуют ENOEXECОшибочный формат исполняемого файла. ENOLCKБлокировка недоступна. ENOLINKЗарезервировано. ENOMEMНедостаточно памяти. ENOMSGСообщение нужного типа отсутствует ENOPROTOOPTПротокол недоступен. ENOSPCНедостаточно памяти в устройстве. ENOSYSФункция не поддерживается. ENOTCONNСокет не соединен. ENOTDIRЭто не каталог ENOTEMPTYКаталог не пустой. ENOTSOCKЭто не сокет ENOTSUPНе поддерживается ENOTTYНеподходящая операция управления вводом/выводом ENXIOНет такого устройства или адреса. EOPNOTSUPPОперация сокета не поддерживается EOVERFLOWСлишком большое значение для типа данных EPERMОперация не разрешена EPIPEКанал (pipe) разрушен EPROTOОшибка протокола. EPROTONOSUPPORTПротокол не поддерживается EPROTOTYPEОшибочный тип протокола для сокета ERANGEРезультат слишком большой EROFSФайловая система только для чтения ESPIPEНедействительный поиск ESRCHНет такого процесса ESTALEЗарезервировано ETIMEDOUTТайм-аут соединения истек ETXTBSYТекстовый файл занят EWOULDBLOCKБлокирующая операция (может быть то же значение, что и для )EAGAINEXDEVСсылка через устройство (cross-device link)