errno(3) 2007-10-27-16:31 errno(3) НАЗВА errno - змінна збереження коду останньої помилки СТИСЛИЙ ОГЛЯД <b>#include <errno.h></b> <b>extern int </b><i>errno</i><b>;</b> ОПИС Ціле число errno встановлюється системними викликами (і деякими функціями бібліотеки), щоб вказати у чому причина похибки. Її значення має зміст тільки тоді, коли виклик повернув помилку (як правило -1) і бібліотечній функції, що змогла справитися з цим, дозволено змінити errno . Іноді, коли -1, це також чинний код повернення, вам необхідно обнулити errno перед викликом для того, щоб бути в змозі виявити можливі помилки. errno описано у стандарті ISO C, як змінне ліве значення (lvalue) типу int і не повинна бути явно оголошеною; errno може бути також макросом. errno є локальною для програмного каналу, тому встановлення її до одного каналу не впливатиме на її зміст у інших. Чинні значення errno повинні бути ненульовим; errno ніколи не встановлюється до нуля, жодною функцією бібліотеки. Всі назви помилок, описані POSIX.1, повинні мати окремі значення. POSIX.1 (випущений 2001 року) перечислює наступні символічні назви помилок. Серед них EDOM і ERANGE належать також стандартові ISO C. ISO C Amendment 1 (першої редакції) описує також додатковий код помилки EILSEQ для погрішностей у програмуванні багатобайтових або широких знаків. E2BIG Список аргументів занадто великий. EACCES Доступ заборонено. EADDRINUSE Адреса вже використовується. EADDRNOTAVAIL Адреса недосяжна. EAFNOSUPPORT Непідтримуване сімейство адрес. EAGAIN Ресурс тимчасово недоступний. EALREADY З'єднання вже в прогресі. EBADF Поганий дескриптор файлу. EBADMSG Погане повідомлення. EBUSY Ресурс зайнятий. ECANCELED Операцію скасовано. ECHILD Немає дочірнього процесу. ECONNABORTED З'єднання припинено. ECONNREFUSED Відмова у з'єднанні. ECONNRESET З'єднання перезаладовано. EDEADLK Уникнуто зависання ресурсу. 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 Немає вільного буферного простору. ENODATA Немає повідомлення для запиту прочитання заголовку STREAM. ENODEV Такий прилад відсутній. ENOENT Немає такого файлу чи каталогу. ENOEXEC Помилка формату виконання. ENOLCK Немає в наявності замків. ENOLINK Резервовано. ENOMEM Недостатньо місця/простору. ENOMSG Немає повідомлення бажаного типу. ENOPROTOOPT Немає в наявності такого протоколу. ENOSPC Не залишилось місця на пристрої. ENOSR Немає ресурсів STREAM (потоку). ENOSTR Не є STREAM (потоком). ENOSYS Функцію не реалізовано. ENOTCON Сокет не під'єднано. ENOTDIR Не є каталогом. ENOTEMPTY Каталог не є порожнім. ENOTSOCK Не є сокетом. ENOTSUP Не підтримується. ENOTTY Непридатна операція вводу/виводу. ENXIO Не існує такого пристрою чи адреси. EOPNOTSUPP Операція не підтримується для сокету. EOVERFLOW Значення завелике, щоб бути збереженим у цьому типу даних. EPERM Заборонена операція. EPIPE Перерваний конвеєр. EPROTO Протокольна помилка. EPROTONOSUPPORT Протокол не підтримується. EPROTOTYPE Помилковий тип протоколу для сокету. ERANGE Результат занадто великий. EROFS Файлова система тільки для читання. ESPIPE Нечинний пошук. ESRCH Процес відсутній. ESTALE Резервовано. ETIME Ліміт часу STREAM (потокового) ioctl(). ETIMEDOUT Вийшов ліміт часу операції. ETXTBSY Тестовий файл зайнятий. EWOULDBLOCK Операція буде блокувати (може мати таке саме значення, що й EAGAIN). EXDEV Невластиве посилання. ДИВІТЬСЯ ТАКОЖ perror(3), strerror(3) © 2005-2007 DLOU, GNU FDL 2007-10-27-16:31 errno(3)