Книга: Основы программирования в Linux

Ошибки 

Как вы видели, многие системные вызовы и функции, описанные в этой главе, могут завершиться аварийно по ряду причин. Когда это происходит, они указывают причину сбоя, задавая значение внешней переменной errno. Многие стандартные библиотеки используют эту переменную как стандартный способ оповещения о возникших проблемах. Стоит повторить, что программа должна проверять переменную errno сразу же после возникновения проблемы в функции, поскольку errno может быть изменена следующей вызванной функцией, даже если она завершилась нормально.

Имена констант и варианты ошибок перечислены в заголовочном файле errno.h. К ним относятся следующие:

? EPERM — Operation not permitted (операция не разрешена);

? ENOENT — No such file or directory (нет такого файла или каталога);

? EINTR — Interrupted system call (прерванный системный вызов);

? EIO — I/O Error (ошибка ввода/вывода);

? EBUSY — Device or resource busy (устройство или ресурс заняты);

? EEXIST — File exists (файл существует);

? EINVAL — Invalid argument (неверный аргумент);

? EMFILE — Too many open files (слишком много открытых файлов);

? ENODEV — No such device (нет такого устройства);

? EISDIR — Is a directory (это каталог);

? ENOTDIR — Isn't a directory (это не каталог).

Есть пара полезных функций, сообщающих об ошибках при их возникновении: strerror и perror.

Оглавление книги

Оглавление статьи/книги

Генерация: 1.630. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз