assert_perror -
проверяет
errnum и
прекращает
выполнение
программы
Standard C library (
libc,
-lc)
#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, а
правильным
кодом
обработки
ошибок.
Никогда не
используйте
этот
макрос.
abort(3),
assert(3),
exit(3),
strerror(3)
Русский
перевод
этой
страницы
руководства
был сделан
Dmitry Bolkhovskikh <
[email protected]> и Yuri Kozlov
<
[email protected]>
Этот
перевод
является
бесплатной
документацией;
прочитайте
Стандартную
общественную
лицензию GNU
версии 3
или более
позднюю,
чтобы
узнать об
условиях
авторского
права. Мы не
несем
НИКАКОЙ
ОТВЕТСТВЕННОСТИ.
Если вы
обнаружите
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
отправьте
электронное
письмо на
[email protected]