Provided by: manpages-ru-dev_4.18.1-1_all bug

ИМЯ

       assert_perror - проверяет errnum и прекращает выполнение программы

LIBRARY

       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
       <d20052005@yandex.ru> и Yuri Kozlov <yuray@komyakino.ru>

       Этот  перевод  является  бесплатной  документацией;  прочитайте  Стандартную  общественную
       лицензию GNU версии 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы
       узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

       Если вы обнаружите ошибки в переводе  этой  страницы  руководства,  пожалуйста,  отправьте
       электронное письмо на ⟨man-pages-ru-talks@lists.sourceforge.net⟩.