assert(3) Library Functions Manual assert(3) BEZEICHNUNG assert - Bricht das Programm ab, wenn der Prufausdruck falsch ergibt. BIBLIOTHEK Standard-C-Bibliothek (libc, -lc) UBERSICHT #include void assert(scalar Ausdruck); BESCHREIBUNG Dieses Makro kann Programmierern beim Suchen von Fehlern in ihren Programmen helfen oder besondere Falle beim Absturz handhaben, bei denen nur begrenzte Fehlersuchausgabe erfolgt. Falls Ausdruck >>falsch<< (d.h. identisch Null) ist wird assert() eine Fehlermeldung auf der Standardfehlerausgabe ausgeben und das Programm durch Aufruf von abort(3) beenden. Die Fehlermeldung enthalt den Namen der Datei und die Funktion, die den assert()-Aufruf enthielt, die Quellcodezeilennummer des Aufrufs und den Text des Arguments, also etwas der folgenden Art: prog: some_file.c:16: some_func: Assertion `val == 0' failed. Ist das Makro NDEBUG definiert, wenn das letzte Include fur erfolgt, erzeugt das Makro assert() keinen Code und bewirkt gar nichts. Es wird empfohlen, NDEBUG zu definieren, falls assert() zum Erkennen von Fehlerbedingungen verwandt wird, da die Software sich nichtdeterministisch verhalten konnte. RUCKGABEWERT Es wird kein Wert zuruckgegeben. ATTRIBUTE Siehe attributes(7) fur eine Erlauterung der in diesem Abschnitt verwandten Ausdrucke. +--------------------------------+-------------------------+-----------+ |Schnittstelle | Attribut | Wert | +--------------------------------+-------------------------+-----------+ |assert() | Multithread-Fahigkeit | MT-Sicher | +--------------------------------+-------------------------+-----------+ STANDARDS C11, POSIX.1-2008. GESCHICHTE C89, C99, POSIX.1-2001. In C89 muss Ausdruck ein int sein, sonst ist das Verhalten nicht definiert. In C99 darf Ausdruck jeden skalaren Typ annehmen. FEHLER assert() ist ein Makro. Wenn der gepruften Ausdruck Seiteneffekte hat, andert sich das Verhalten des Programms abhangig davon, ob NDEBUG definiert ist oder nicht. Dies kann sporadische Fehler verursachen, die bei aktivierter Debug-Option nicht auftreten. SIEHE AUCH abort(3), assert_perror(3), exit(3) UBERSETZUNG Die deutsche Ubersetzung dieser Handbuchseite wurde von Ralf Demmer , Martin Eberhard Schauer und Dr. Tobias Quathamer erstellt. Diese Ubersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezuglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG ubernommen. Wenn Sie Fehler in der Ubersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Ubersetzer . Linux man-pages 6.06 31. Oktober 2023 assert(3)