assert(3)

이름
assert - abort the program if assertion is false

라이브러리
표준 C 라이브러리 (libc, -lc)

요약
#include <assert.h>

void assert(scalar expression);

설명
This macro can help programmers find bugs in their programs, or handle exceptional cases via a crash that will produce limited debugging output.

If expression is false (i.e., compares equal to zero), assert() prints an error message to standard error and terminates the program by calling abort(3). The error message includes the name of the file and function containing the assert() call, the source code line number of the call, and the text of the argument; something like:

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

If the macro NDEBUG is defined at the moment <assert.h> was last included, the macro assert() generates no code, and hence does nothing at all. It is not recommended to define NDEBUG if using assert() to detect error conditions since the software may behave non-deterministically.

반환값
반환값을 갖지 않는다.

속성
이 섹션에서 사용되는 용어에 대한 설명은 attributes(7)을 참조하십시오.
상호 작용 | 속성 | 번호
assert() | Thread safety | MT-Safe

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

버그
assert() 는 매크로 구현된다.; assert() 로 검사하는 expression이 부작용을 낳는다면, 프로그램의 실행은 NDEBUG 가 정의 되어 있느냐에 따라 달라진다. 이런 점 때문에 디버깅 모드에서는 사라지는 Heisenbugs(불확정성 버그)를 만들 수 있다.

추가 참조
abort(3), assert_perror(3), exit(3)

번역
이 매뉴얼 페이지의 한국어 번역은 다음에 의해 편집되었습니다: 한글 Manpage 프로젝트 <http://man.kldp.org>

이 번역은 무료 문서입니다. 저작권 조건에 대해서는 GNU General Public License 버전 3 (https://www.gnu.org/licenses/gpl-3.0.html) 이상을 읽으십시오. 책임이 없습니다.

이 매뉴얼 페이지의 번역에서 오류를 발견하면 translation-team-ko@googlegroups.com 로 이메일을 보내주십시오.