assert(3) Library Functions Manual assert(3)

assert - întrerupe programul dacă afirmația este falsă

Biblioteca C standard (libc, -lc)

#include <assert.h>
void assert(scalar expresie);

Această macrocomandă poate ajuta programatorii să găsească erori în programele lor sau să trateze cazuri excepționale prin intermediul unui accident care va produce rezultate limitate de depanare.

If expression is false (i.e., compares equal to zero), assert() prints an error message to standard error and terminates the program by calling abort(3). The error message includes the name of the file and function containing the assert() call, the source code line number of the call, and the text of the argument; something like


program: vreun_fișier.c:16: vreo_funcție: Aserțiunea `val == 0' a eșuat

Dacă macrocomanda NDEBUG este definită în momentul în care <assert.h> a fost inclus ultima dată, macrocomanda assert() nu generează niciun cod și, prin urmare, nu face nimic. Nu se recomandă definirea lui NDEBUG dacă se utilizează assert() pentru a detecta condițiile de eroare, deoarece software-ul se poate comporta în mod nedeterminist.

Nu se returnează nicio valoare.

Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).

Interfață Atribut Valoare
assert() Siguranța firelor MT-Safe

C11, POSIX.1-2008.

C89, C99, POSIX.1-2001.

În C89, expresie trebuie să fie de tipul int și dacă nu este de acest tip, rezultă un comportament nedefinit, dar în C99 poate avea orice tip scalar.

assert() este implementat ca o macrocomandă; dacă expresia testată are efecte secundare, comportamentul programului va fi diferit în funcție de definirea sau nu a NDEBUG. Acest lucru poate crea erori software „Heisenbugs” care dispar atunci când depanarea este activată.

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

Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.

31 octombrie 2023 Pagini de manual de Linux 6.06