Вывести информацию об ошибке в определенном формате и завершить работу программы
#include <err.h>void err( int eval,const char *fmt,... );void errx( int eval,const char *fmt,... );
NULL
или строка в стиле printf() для форматирования сообщения.libc
Семейство функций err() и warn() отображает сообщение ошибки в stderr:
Функция | Отображает errno? | Аргументы переменной длинны? | Завершает процесс? |
---|---|---|---|
err() | Да | Нет | Да |
errx() | Нет | Нет | Да |
verr() | Да | Да | Да |
verrx() | Нет | Да | Да |
vwarn() | Да | Да | Нет |
vwarnx() | Нет | Да | Нет |
warn() | Да | Нет | Нет |
warnx() | Нет | Нет | Нет |
Функция err() создает сообщение, содержащее:
NULL
Функция errx() создает похожее сообщение за исключением того, что не содержит строку, ассоциированную с errno. Сообщение содержит:
NULL
Функции err() и errx() не возвращают ничего, но завершают процесс со значением аргумента eval.
Отобразить текущую информацию errno и выйти:
if ( (p = malloc( size )) == NULL )err( 1, NULL );if ( (fd = open( file_name, O_RDONLY, 0 )) == -1 )err( 1, "%s", file_name );
Отобразить сообщение ошибки и выйти:
if ( tm.tm_hour < START_TIME )errx( 1, "too early, wait until %s", start_time_string );
Unix
printf(), stderr, strerror(), verr(), verrx(), vwarn(), vwarnx(), warn(), warnx()
Предыдущий раздел: Описание API системной библиотеки