Scroll to navigation

SIGPAUSE(3) Linux-Programmierhandbuch SIGPAUSE(3)

BEZEICHNUNG

sigpause - schaltet gezielt blockierte Signale frei und wartet auf einen Interrupt

ÜBERSICHT

#include <signal.h>
int sigpause(int sigmask);  /* BSD (siehe ANMERKUNGEN) */
int sigpause(int sig);      /* System V / UNIX 95 */

BESCHREIBUNG

Verwenden Sie diese nicht Funktion, sondern stattdessen sigsuspend(2).

Die Funktion sigpause() wurde entwickelt, um auf ein Signal warten. Sie ändert die Signalmaske (den Satz blockierter Signale) des Prozesses und wartet dann darauf, dass ein Signal eintrifft. Nach der Ankunft eines Signals wird die ursprüngliche Signalmaske wiederhergestellt.

RÜCKGABEWERT

Wenn sigpause() zurückkehrt, wurde sie durch ein Signal unterbrochen. Der Rückgabewert ist -1; der Wert von errno ist EINTR.

ATTRIBUTE

Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke.

Schnittstelle Attribut Wert
sigpause() Multithread-Fähigkeit MT-Safe

KONFORM ZU

Die System-V-Version von sigpause() ist in POSIX.1-2001 standardisiert. Er ist auch in POSIX.1-2008 spezifiziert, dort aber als veraltet markiert.

ANMERKUNGEN

Geschichte

Die klassische BSD-Version dieser Funktion erschien in 4.2BSD. Sie setzt die Signalmaske des Prozesses auf sigmask. UNIX 95 standardisierte die inkompatible System-V-Version dieser Funktion, die nur das angegebene Signal sig aus der Signalmaske des Prozesses entfernt. Die unglückliche Situation mit zwei unvereinbaren Funktionen mit dem gleichen Namen wurde von der Funktion sigsuspend(2) gelöst. Ihr Argument hat den Typ sigset_t * anstatt int.

Linux-Anmerkungen

Unter Linux ist diese Routine nur auf der Sparc-Architektur (sparc64) ein Systemaufruf.

Glibc verwendet die BSD-Version, wenn das Feature-Test-Makro _BSD_SOURCE und keines der Makros _POSIX_SOURCE, _POSIX_C_SOURCE, _XOPEN_SOURCE, _GNU_SOURCE oder _SVID_SOURCE definiert ist. Anderenfalls verwendet sie die System-V-Version und Feature-Test-Makros müssen wie folgt definiert sein, um die Deklarationen zu erhalten:

  • Seit Glibc 2.26: _XOPEN_SOURCE >= 500
  • Glibc 2.25 und älter: _XOPEN_SOURCE

Seit Glibc 2.19 wird nur die System-V-Version von <signal.h> angezeigt. Zu Anwendungen, die früher sigpause() von BSD verwendet haben, sollte sigsuspend(2) hinzugefügt werden.

SIEHE AUCH

kill(2), sigaction(2), sigprocmask(2), sigsuspend(2), sigblock(3), sigvec(3), feature_test_macros(7)

KOLOPHON

Diese Seite ist Teil der Veröffentlichung 5.13 des Projekts Linux-man-pages. Eine Beschreibung des Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden sich unter https://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von René Tschirley <gremlin@cs.tu-berlin.de>, Martin Eberhard Schauer <Martin.E.Schauer@gmx.de> und Mario Blättermann <mario.blaettermann@gmail.com> 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.

22. März 2021 Linux