Scroll to navigation

assert(3) Library Functions Manual assert(3)

NUME

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

BIBLIOTECA

Biblioteca C standard (libc, -lc)

REZUMAT

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

DESCRIERE

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.

VALOAREA RETURNATĂ

Nu se returnează nicio valoare.

ATRIBUTE

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

STANDARDE

C11, POSIX.1-2008.

ISTORIC

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.

ERORI

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

CONSULTAȚI ȘI

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

TRADUCERE

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.

20 iulie 2023 Pagini de manual de Linux 6.05.01