Provided by: manpages-pl-dev_0.7-2_all bug

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).

       ┌──────────┬────────────────────────┬─────────┐
       │InterfejsAtrybutWartość │
       ├──────────┼────────────────────────┼─────────┤
       │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.