Операционная система UNIX. Руководство программиста




Обработка ошибок


Внутри C-программ необходимо проверять с требуемой строгостью правильность данных, а также допустимость значений, возвращаемых функциями. Для системных вызовов, описанных в разделе 2 Справочника программиста, имеется стандартный способ определения вероятной причины неудачного завершения.

В случае неудачного завершения почти всегда системные вызовы ОС UNIX возвращают вызвавшей программе значение -1. (Если Вы просмотрите описание системных вызовов в разделе 2, Вы увидите, что имеется все же несколько вызовов, для которых возвращаемое значение не определено, но это исключения.) При неудачном завершении, кроме возврата значения -1, системные вызовы помещают код ошибки во внешнюю переменную errno. Чтобы переменная errno была доступна Вашей программе, необходимо включить в программу оператор

#include <errno.h>

При успешном завершении системного вызова значение переменной errno не изменяется, поэтому оно имеет смысл только в случае, когда какой-либо системный вызов вернул -1. Список кодов ошибок приведен в Справочнике программиста в статье intro(2).

Для того, чтобы по коду ошибки, помещенному в errno, вывести в стандартный протокол сообщение об ошибке, можно воспользоваться функцией perror(3C).




Содержание  Назад  Вперед