Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

sigsuspend - auf Signal warten

&pagelevel(4)&pagelevel

Definition

#include <signal.h>

int sigsuspend(const sigset_t *sigmask);

Beschreibung

sigsuspend() ersetzt die aktuelle Signalmaske des Prozesses durch die Signalmenge, auf die sigmask zeigt, und blockiert den Prozess solange, bis ein Signal zugestellt wird, dessen Signalaktion entweder die Ausführung einer Signalbehandlungsfunktion oder der Prozessabbruch ist.

Wenn die Signalaktion der Prozessabbruch ist, kehrt sigsuspend() nicht zurück.

Wenn die Signalaktion die Ausführung einer Signalbehandlungsfunktion ist, kehrt die Funktion nach Ende dieser Signalbehandlungsfunktion zurück, wobei die Signalmaske so wiederhergestellt wird, wie sie vor dem Aufruf von sigsuspend() eingestellt war.

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.

Werden Threads verwendet, so wirkt sich die Funktion auf den Prozess oder auf einen Thread wie folgt aus: sigsuspend() ersetzt die aktuelle Signalmaske des aufrufenden Threads mit der angegebenen Signalmenge und suspendiert dann den Thread.

Returnwert

-1

bei Fehler. errno wird gesetzt, um den Fehler anzuzeigen.

 

Da sigsuspend() die Prozessausführung solange unterbricht, bis sie von einem Signal unterbrochen wird, kann sigsuspend() keinen Returnwert für erfolgreiche Beendigung haben.

Fehler

sigsuspend() schlägt fehl, wenn gilt:

 

EINTR

Ein Signal wurde vom aufrufenden Prozess abgefangen und die Steuerung wird von der Signalbehandlungs-Funktion zurückgegeben.

 

Erweiterung


 

EFAULT

sigmask weist über den zugewiesenen Adressraum des Prozesses hinaus.
(Ende)

Siehe auch

 pause(), sigaction(), sigaddset(), sigdelset(), sigemptyset(), sigfillset(), signal.h.