.\" -*- coding: UTF-8 -*- '\" t .\" Copyright (c) 1993 by Thomas Koenig (ig25@rz.uni-karlsruhe.de) .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" Modified Sat Jul 24 21:42:42 1993 by Rik Faith .\" Modified Tue Oct 22 23:44:11 1996 by Eric S. Raymond .\" Modified Thu Jun 2 23:44:11 2016 by Nikos Mavrogiannopoulos .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH assert 3 "23 июля 2024 г." "Linux man\-pages 6.12" .SH НАИМЕНОВАНИЕ assert \- прекращает работу программы при ложном утверждении .SH БИБЛИОТЕКА Standard C library (\fIlibc\fP,\ \fI\-lc\fP) .SH ОБЗОР .nf \fB#include \fP .P \fBvoid assert(scalar \fP\fIexpression\fP\fB);\fP .fi .SH ОПИСАНИЕ Данный макрос помогает программистам находить ошибки в своих программах или обрабатывать исключительные случаи посредством завершения программы, при котором выводится немного отладочной информации. .P Если \fIexpression\fP ложно (т. е., при сравнении равно нулю), то \fBassert\fP() печатает сообщение об ошибке в стандартный поток ошибок и завершает программу вызовом \fBabort\fP(3). Сообщение об ошибке содержит имя файла и функцию, содержащую вызов \fBassert\fP(), номер строки исходного кода вызова и текст аргумента; пример: .P .in +4n .EX prog: some_file.c:16: some_func: Assertion \`val == 0\[aq] failed. .EE .in .P Если определён макрос \fBNDEBUG\fP на момент включения последнего \fI\fP, то макрос \fBassert\fP() не генерирует код, и, следовательно ничего вызывает. Не рекомендуется определять \fBNDEBUG\fP, если \fBassert\fP() используется для обнаружения ошибок условий, так как ПО может повести себя непредсказуемо. .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" Ничего не возвращается. .SH АТРИБУТЫ Описание терминов данного раздела смотрите в \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Интерфейс Атрибут Значение T{ .na .nh \fBassert\fP() T} Безвредность в нитях MT\-Safe .TE .SH СТАНДАРТЫ C11, POSIX.1\-2008. .SH ИСТОРИЯ C89, C99, POSIX.1\-2001. .P .\" See Defect Report 107 for more details. In C89, \fIexpression\fP is required to be of type \fIint\fP and undefined behavior results if it is not, but in C99 it may have any scalar type. .SH ОШИБКИ Функция \fBassert\fP() реализована в виде макроса. Если проверка выражения приводит к побочным изменениям, то поведение программы будет различным в зависимости от наличия \fBNDEBUG\fP. Это может создавать гейзенбаг, который исчезает при включении отладки. .SH "СМОТРИТЕ ТАКЖЕ" \fBabort\fP(3), \fBassert_perror\fP(3), \fBexit\fP(3) .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства разработал(и) Dmitry Bolkhovskikh , Yuri Kozlov и Kirill Rekhov . .PP Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, .UR https://www.gnu.org/licenses/gpl-3.0.html .UE версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ. .PP Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу .MT списка рассылки русских переводчиков .ME .