Man page - assert(3)

Packages contains this manual

Available languages:

en fr pt_BR es pl ja ru ro de

Manual

assert

NAZWA
BIBLIOTEKA
SKŁADNIA
OPIS
WARTOŚĆ ZWRACANA
ATRYBUTY
STANDARDY
HISTORIA
USTERKI
ZOBACZ TAKŻE
TŁUMACZENIE

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

Image grohtml-3988189-1.png

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

Tłumaczenie niniejszej strony podręcznika: 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 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 .