Scroll to navigation

ASSERT(3) Podręcznik programisty Linuksa ASSERT(3)

NAZWA

assert - przerwanie pracy programu jeśli wyrażenie jest fałszywe

SKŁADNIA

#include <assert.h>

void assert(scalar wyrazenie);

OPIS

Uwaga! To tłumaczenie może być nieaktualne!

Jeśli w momencie włączania <assert.h> jest zdefiniowane makro NDEBUG, to makro assert() nie generuje żadnego kodu, więc w ogóle nic nie robi. W przeciwnym przypadku makro assert() wypisuje komunikat na standardowym wyjściu i przerywa pracę programu poprzez wywołanie abort() jeśli wyrazenie jest fałszywe (równe zeru).

Celem istnienia tego makra jest pomoc programiście w znalezieniu usterek # czy polskie locale tłumaczy ten komunikat ? w jego programie. Komunikat "assertion failed in file foo.c, function do_bar(), line 1287" jest bezużyteczny dla użytkownika.

WARTOŚĆ ZWRACANA

Nie jest zwracana żadna wartość.

ZGODNE Z

ISO9899 (ANSI C). W standardzie z roku 1990 od wyrażenia wyrazenie wymaga się, aby było typu int a zachowanie funkcji jest nieokreślone, gdy tak nie jest. Jednakże w standardzie z roku 1999 może ono być dowolnego typu skalarnego.

BŁĘDY

assert() jest zaimplementowana jako makro. Jeśli testowane wyrażenie ma jakieś efekty uboczne, zachowanie programu będzie różne w zależności od tego, czy zdefiniowano makrodefinicję NDEBUG Może to prowadzić do usterek Heisena, które nie występują przy włączonym odpluskwianiu.

ZOBACZ TAKŻE

exit(3), abort(3), assert_perror(3)

INFORMACJE O TŁUMACZENIU

Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu Tłumaczenia Manuali i może nie być aktualne. W razie zauważenia różnic między powyższym opisem a rzeczywistym zachowaniem opisywanego programu lub funkcji, prosimy o zapoznanie się z oryginalną (angielską) wersją strony podręcznika za pomocą polecenia:

man --locale=C 3 assert

Prosimy o pomoc w aktualizacji stron man - więcej informacji można znaleźć pod adresem http://sourceforge.net/projects/manpages-pl/.

2002-08-25 C99