assert_perror - проверяет errnum и прекращает выполнение программы
assert_perror(3)
проверяет errnum и прекращает выполнение программы
ОБЗОР
#define _GNU_SOURCE /* Смотрите feature_test_macros(7) */
#include <assert.h>
void assert_perror(int errnum);
ОПИСАНИЕ
Если на момент последнего включения
<assert.h> был определён
макрос
NDEBUG, то для макроса
assert_perror() не создаётся никакого
кода и, соответственно, он вообще ничего не делает. В противном случае,
макрос
assert_perror() выводит в стандартный поток ошибок сообщение об
ошибке и прекращает работу программы вызовом
abort(3), если значение
errnum не равно нулю. В сообщении содержится имя файла, имя функции и
номер строки вызова макроса, а также результат вызова
strerror(errnum).
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
Ничего не возвращается.
АТРИБУТЫ
Описание терминов данного раздела смотрите в
attributes(7).
Интерфейс Атрибут Значение
assert_perror()
безвредность в потоках: безвредно (MT-Safe)
СООТВЕТСТВИЕ СТАНДАРТАМ
Это расширение GNU.
ДЕФЕКТЫ
Целью макроса assert является оказание помощи программистам в поиске ошибок
в программах — таких сбоев, которые не могут случиться, если только не была
допущена ошибка в коде программы. Однако, с системными или библиотечными
вызовами ситуация немного отличается, и возврат ошибки может произойти и,
собственно, произойдёт и должен может быть проверен, но не через assert, где
проверка не получится, если определено
NDEBUG, а правильным кодом
обработки ошибок. Никогда не используйте этот макрос.