Книга: Основы программирования в 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
.
- Глава 3 Работа с файлами
- Шаг вперед, два назад
- Chapter 5. Kernel Initialization
- Кто такая Елена Ивашенцева?
- 11.2. Цели процесса
- Рис. 214. Имена почтовых серверов.
- Document
- ГЛАВА 3 Внутренняя структура .NET Compact Framework
- Джордж Буль Отец булевой алгебры
- Removable Storage Media
- Работа пользователей с виртуальной машиной
- 6.5. Общие команды меню Windows-программ. Буфер обмена Windows