bsd_signal(3) | Library Functions Manual | bsd_signal(3) |
BEZEICHNUNG
bsd_signal - Signalhandhabung mit BSD-Semantiken
BIBLIOTHEK
Standard-C-Bibliothek (libc, -lc)
ÜBERSICHT
#include <signal.h>
typedef void (*sighandler_t)(int);
sighandler_t bsd_signal(int signum, sighandler_t handler);
bsd_signal():
Seit Glibc 2.26: _XOPEN_SOURCE >= 500 && ! (_POSIX_C_SOURCE >= 200809L) Glibc 2.25 und älter: _XOPEN_SOURCE
BESCHREIBUNG
Die Funktion bsd_signal() akzeptiert die gleichen Argumente und führt die gleiche Aufgabe wie signal(2) durch.
Der Unterschied zwischen den beiden besteht darin, dass bsd_signal() garantiert, zuverlässige Signalsemantiken bereitzustellen, konkret: a) Die Disposition des Signals wird nicht auf den Standardwert zurückgesetzt, wenn der Handhaber aufgerufen wird; b) Die Auslieferung weiterer Instanzen des Signals wird blockiert, während der Signal-Handhaber ausgeführt wird; und c) Falls der Handhaber einen blockierenden Systemaufruf unterbricht, dann wird der Systemaufruf automatisch neu gestartet. Eine portierbare Anwendung kann sich nicht darauf verlassen, dass signal(2) diese Garantien bereitstellt.
RÜCKGABEWERT
Die Funktion bsd_signal() liefert den vorherigen Wert des Signal-Handhabers zurück oder SIG_ERR im Fehlerfall.
FEHLER
Wie bei signal(2).
ATTRIBUTE
Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke.
Schnittstelle | Attribut | Wert |
bsd_signal() | Multithread-Fähigkeit | MT-Sicher |
VERSIONEN
Die Verwendung von bsd_signal() sollte vermieden werden, verwenden Sie stattdessen sigaction(2).
Auf modernen Linux-Systemen sind bsd_signal() und signal(2) äquivalent. Aber auf älteren Systemen stellte signal(2) unzuverlässige Signalsemantiken bereit, siehe signal(2) zu Details.
Die Verwendung von sighandler_t ist eine GNU-Erweiterung; dieser Typ ist nur definiert, falls das Feature-Test-Makro _GNU_SOURCE definiert ist.
STANDARDS
Keine.
GESCHICHTE
4.2BSD, POSIX.1-2001. In POSIX.1-2008 entfernt, es wird stattdessen die Verwendung von sigaction(2) empfohlen.
SIEHE AUCH
ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer.
2. Mai 2024 | Linux man-pages 6.8 |