НАЗВА
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 : Невластиве посилання.