Man:Man3/errno.3
Матеріал з docs.linux.org.ua — збірника документації з Unix/Linux українською мовою.
Зміст |
НАЗВА
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
- Невластиве посилання.

