Provided by: manpages-pl-dev_0.7-1_all ![bug](/img/bug.png)
![bug](/img/bug.png)
NAZWA
assert - przerwanie pracy programu, jeśli wyrażenie jest fałszywe
SKŁADNIA
#include <assert.h> void assert(scalar wyrażenie);
OPIS
To makro może pomóc programistom znajdować błędy w ich programach lub obsługiwać wyjątki przez wywołanie awarii zapewniającej ograniczone wyjście debugowania. Jeśli wyrażenie jest fałszywe (to jest równe zeru), assert() wyświetli błąd na standardowe wyjście błędów i przerywa pracę programu przez wywołanie abort(3). Komunikat błędu zawiera nazwę pliku i funkcji zawierającej wywołanie assert(), numer wiersza kodu źródłowego z wywołaniem i tekst argumentu np.: prog: some_file.c:16: some_func: Assertion `val == 0' failed. Jeśli w momencie ostatniego włączenia pliku <assert.h> było zdefiniowane makro NDEBUG, to makro assert() nie generuje żadnego kodu, więc w ogóle nic nie robi. Nie zaleca się definiowania NDEBUG przy używaniu assert() do wykrywania błędów, ponieważ oprogramowanie może zachowywać się nieprzewidywalnie.
WARTOŚĆ ZWRACANA
Nie jest zwracana żadna wartość.
ATRYBUTY
Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku attributes(7). ┌──────────┬────────────────────────┬─────────┐ │Interfejs │ Atrybut │ Wartość │ ├──────────┼────────────────────────┼─────────┤ │assert() │ Bezpieczeństwo wątkowe │ MT-Safe │ └──────────┴────────────────────────┴─────────┘
ZGODNE Z
POSIX.1-2001, POSIX.1-2008, C89, C99. W C89 wyrażenie musi być typu int, w przeciwnym wypadku zachowanie funkcji jest nieokreślone, jednakże w C99 może być dowolnego typu skalarnego.
BŁĘDY
assert() jest zaimplementowane 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 Heisenbugów [patrz: http://pl.wikipedia.org/wiki/Heisenbug - przyp.tłum.], które nie występują przy włączonym odpluskwianiu.
ZOBACZ TAKŻE
abort(3), assert_perror(3), exit(3)
O STRONIE
Angielska wersja tej strony pochodzi z wydania 4.07 projektu Linux man-pages. Opis projektu, informacje dotyczące zgłaszania błędów oraz najnowszą wersję oryginału można znaleźć pod adresem https://www.kernel.org/doc/man-pages/.
TŁUMACZENIE
Autorami polskiego tłumaczenia niniejszej strony podręcznika man są: Adam Byrtek (PTM) <abyrtek@priv.onet.pl>, Andrzej Krzysztofowicz (PTM) <ankry@mif.pg.gda.pl>, Robert Luberda <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>. Polskie tłumaczenie jest częścią projektu manpages-pl; uwagi, pomoc, zgłaszanie błędów na stronie http://sourceforge.net/projects/manpages-pl/. Jest zgodne z wersją 4.07 oryginału.