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

ИМЯ

       assert - прекращает работу программы при ложном утверждении

LIBRARY

       Standard C library (libc, -lc)

СИНТАКСИС

       #include <assert.h>

       void assert(scalar expression);

ОПИСАНИЕ

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

       Если expression ложно (т. е., при сравнении равно нулю), то assert() печатает сообщение об
       ошибке в стандартный поток ошибок и завершает программу  вызовом  abort(3).  Сообщение  об
       ошибке  содержит  имя  файла  и функцию, содержащую вызов assert(), номер строки исходного
       кода вызова и текст аргумента; пример:

           prog: some_file.c:16: some_func: Assertion `val == 0' failed.

       Если определён макрос NDEBUG на момент включения последнего <assert.h>, то макрос assert()
       не  генерирует  код, и, следовательно ничего вызывает. Не рекомендуется определять NDEBUG,
       если assert() используется для обнаружения ошибок условий, так как ПО может  повести  себя
       непредсказуемо.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

       Ничего не возвращается.

АТРИБУТЫ

       Описание терминов данного раздела смотрите в attributes(7).

       ┌───────────────────────────────────────────────────────┬──────────────────────┬──────────┐
       │ИнтерфейсАтрибутЗначение │
       ├───────────────────────────────────────────────────────┼──────────────────────┼──────────┤
       │assert()                                               │ Безвредность в нитях │ MT-Safe  │
       └───────────────────────────────────────────────────────┴──────────────────────┴──────────┘

СТАНДАРТЫ

       POSIX.1-2001, POSIX.1-2008, C99.

ДЕФЕКТЫ

       Функция  assert()  реализована в виде макроса. Если проверка выражения приводит к побочным
       изменениям, то поведение программы будет различным в зависимости от  наличия  NDEBUG.  Это
       может создавать гейзенбаг, который исчезает при включении отладки.

СМ. ТАКЖЕ

       abort(3), assert_perror(3), exit(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⟩.