Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

sigprocmask - blockierte Signale ermitteln oder ändern

&pagelevel(4)&pagelevel

Definition

#include <signal.h>

int sigprocmask(int how, const sigset_t *set, sigset_t *oset);

Beschreibung

sigprocmask() erlaubt dem aufrufenden Prozess, seine Signalmaske, d.h. die Menge der blockierten Signale, zu überprüfen oder zu ändern.

Wenn set ungleich dem Nullzeiger ist, zeigt es auf eine Signalmenge, die verwendet wird, um die augenblicklich blockierte Signalmenge zu ändern.

how gibt an, auf welche Weise die Signalmenge geändert werden soll. Es kann einen der folgenden Werte annehmen (siehe auch signal.h):

SIG_BLOCK

Die Ergebnismenge besteht aus der Vereinigung der aktuellen und der durch set angegebenen Signalmenge.

SIG_UNBLOCK

Die Ergebnismenge besteht aus der Schnittmenge der aktuellen und des Komplements der durch set angegebenen Signalmenge.

SIG_SETMASK

Die Ergebnismenge entspricht der durch set angegebenen Signalmenge.

Wenn oset kein Nullzeiger ist, wird die alte Maske in dem Bereich abgespeichert, auf den oset zeigt.

Wenn set ein Nullzeiger ist, spielt der Wert des Arguments how keine Rolle und die Signalmaske des Prozesses bleibt unverändert; daher kann der Aufruf verwendet werden, um die derzeit blockierten Signale abzufragen.

Wenn es anstehende, nichtblockierte Signale nach einem Aufruf von sigprocmask() gibt, wird wenigstens eines dieser Signale zugestellt, bevor der Aufruf von sigprocmask() zurückkehrt.

Signale, die nicht ignoriert werden können, können auch nicht blockiert werden (siehe signal.h). Dies wird durch das System sichergestellt, ohne dass ein Fehler angezeigt wird.

Wenn eines der Signale SIGFPE, SIGILL oder SIGSEGV erzeugt wird, während es blockiert ist, ist das Ergebnis undefiniert, es sei denn, das Signal wurde durch kill() oder raise() erzeugt.

Wenn sigprocmask() fehlschlägt, wird die Signalmaske des Prozesses nicht geändert.

sigprocmask() ist nicht threadsicher. Verwenden Sie bei Bedarf die Funktion pthread_sigmask().

Returnwert

0

bei Erfolg.

 

-1

bei Fehler. errno wird gesetzt, um den Fehler anzuzeigen. Die Signalmaske des Prozesses wird nicht geändert.

Fehler

sigprocmask() schlägt fehl, wenn gilt:

 

EINVAL

Der Wert von how entspricht keinem zulässigen Wert.

 

Erweiterung

 

EFAULT

oder oset weisen über den zugewiesenen Adressraum des Prozesses hinaus. (Ende)

Siehe auch

kill(), raise(), sigaction(), sigaddset(), sigdelset(), sigemptyset(), sigfillset(), sigismember(), sigpending(), sigsuspend(), signal.h.