НАЗВА

errno - змінна збереження коду останньої помилки

СТИСЛИЙ ОГЛЯД

**#include <errno.h>** 

**extern int **_errno_**;** 

ОПИС

Ціле число 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)