bsd_signal(3) Library Functions Manual bsd_signal(3)

bsd_signal - Signalhandhabung mit BSD-Semantiken

Standard-C-Bibliothek (libc, -lc)

ÜBERSICHT

#include <signal.h>
typedef void (*sighandler_t)(int);
sighandler_t bsd_signal(int signum, sighandler_t handler);
Mit Glibc erforderliche Feature-Test-Makros (siehe feature_test_macros(7)):

bsd_signal():

    Seit Glibc 2.26:
        _XOPEN_SOURCE >= 500
            && ! (_POSIX_C_SOURCE >= 200809L)
    Glibc 2.25 und älter:
        _XOPEN_SOURCE

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.

Die Funktion bsd_signal() liefert den vorherigen Wert des Signal-Handhabers zurück oder SIG_ERR im Fehlerfall.

Wie bei signal(2).

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

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.

Keine.

4.2BSD, POSIX.1-2001. In POSIX.1-2008 entfernt, es wird stattdessen die Verwendung von sigaction(2) empfohlen.

sigaction(2), signal(2), sysv_signal(3), signal(7)

Ü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