Provided by: manpages-pl-dev_4.23.1-1_all bug

NAZWA

       assert - przerywa pracę programu, jeśli wyrażenie jest fałszywe

BIBLIOTEKA

       Standardowa biblioteka C (libc, -lc)

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-bezpieczne │
       └────────────────────────────────────────────────┴────────────────────────┴───────────────┘

STANDARDY

       C11, POSIX.1-2008.

HISTORIA

       C89, C99, POSIX.1-2001.

       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.

USTERKI

       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)

TŁUMACZENIE

       Autorami  polskiego  tłumaczenia   niniejszej   strony   podręcznika   są:   Adam   Byrtek
       <alpha@irc.pl>,   Andrzej   Krzysztofowicz   <ankry@green.mf.pg.gda.pl>,   Robert  Luberda
       <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>

       Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe  informacje  o  warunkach  licencji
       można   uzyskać   zapoznając   się   z   GNU   General   Public   License   w   wersji   3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  lub  nowszej.  Nie   przyjmuje   się   ŻADNEJ
       ODPOWIEDZIALNOŚCI.

       Błędy  w  tłumaczeniu  strony  podręcznika  prosimy  zgłaszać  na  adres listy dyskusyjnej
       ⟨manpages-pl-list@lists.sourceforge.net⟩.