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

ДИВІТЬСЯ ТАКОЖ

perror(3), strerror(3)

Особисті інструменти