Provided by:
manpages-de-dev_0.5-4.1ubuntu1_all 
BEZEICHNUNG
sigaction, sigprocmask, sigpending, sigsuspend - POSIX Funktionen zur
Signalbenutzung.
ÜBERSICHT
#include <signal.h>
int sigaction(int signum, const struct sigaction *act, struct sigaction
*oldact);
int sigprocmask(int how, const sigset_t *set, sigset_t *oldset);
int sigpending(sigset_t *set);
int sigsuspend(const sigset_t *mask);
BESCHREIBUNG
Der Systemaufruf sigaction kann zur Veränderung der Aktion für ein
Signal benutzt werden.
signum gibt das Signal an, es kann jedes gültige Signal außer SIGKILL
und SIGSTOP sein.
Wenn act nicht Null ist, wird act als Aktion für das Signal signum
eingebunden. Wenn oldact nicht Null ist, wird die vorherige Aktion in
oldact gespeichert.
Die Struktur sigaction wird definiert durch
struct sigaction {
void (*sa_handler)(int);
sigset_t sa_mask;
int sa_flags;
void (*sa_restorer)(void);
}
Mögliche Werte für sa_handler sind SIG_DFL für die voreingestellte
Aktion, SIG_IGN um dieses Signal zu ignorieren oder ein Zeiger auf eine
Signalhandlerfunktion.
sa_mask ist eine Signalmaske, die angibt, welche Signale während der
Ausführung des Signalhandlers blockiert werden sollen.
sa_flags ist das Ergebnis einer bitweisen ODER-Verknüpfung von Null
oder mehreren der folgenden Flags
SA_NOCLDSTOP
Verhindert die Auslösung von SIGCHLD-Signalen wenn ein
Kindprozess terminiert.
SA_ONESHOT
Stellt den Ausgangszustand des Status wieder her, der vor
Aufruf des Signalhandlers vorlag. Dies ist das
voreingestellte Verhalten.
SA_RESTART
Das Gegenstück zu SA_ONESHOT, womit der Ausgangszustand
von vor Aufruf des Signalhandlers nicht wiederhergestellt
wird. Dies erlaubt kompatibles Verhalten zur BSD
Signalsemantik.
SA_NOMASK
Es soll nicht verhindert werden, dass der Empfang des
Signals selbst in seiner Signalhandlerfunktion möglich
ist.
Das Element sa_restorer ist veraltet und sollte nicht mehr benutzt
werden.
Die Funktion sigprocmask wird benutzt, um die Liste der augenblicklich
blockierten Signale zu verändern. Das Verhalten der Funktion ist
abhängig vom Wert von how, das die folgenden Werte annehmen kann.
SIG_BLOCK
Zu blockierende Signale sind die bereits als zu
blockierenden plus die im Argument set angegebenen.
SIG_UNBLOCK
Die Signale in set werden von der Liste der zu
blockierenden Signale gestrichen. Es ist kein Fehler,
Signale zu entfernen, die nicht blockiert werden sollten.
SIG_SETMASK
Die zu blockierenden Signale sind die im Argument set
angegebenen.
Ist das Argument oldset nicht Null, wird der vorherige Wert der
Signalmaske in oldset abgelegt.
Die Funktion sigpending erlaubt die Untersuchung von bereits
anliegenden weiteren Signalen, die ausgelöst wurden, während sie
blockiert waren. Die Signalmaske wartender Signale wird in set
abgelegt.
Die Funktion sigsuspend ersetzt termporär die Signalmaske des Prozesses
mit dem Argument mask und unterbricht den Prozess dann bis ein Signal
empfangen wird.
RÜCKGABEWERTE
sigaction, sigprocmask, sigpending und sigsuspend liefern 0 bei Erfolg
und -1 bei aufgetretenen Fehlern.
FEHLER
EINVAL Ein ungültiges Signal wurde angegeben. Dieser Fehler wird auch
ausgelöst, wenn die Aktion für SIGKILL oder SIGSTOP versucht
wird, zu ändern, da diese Aktionen nicht abgefangen werden
können.
EFAULT act, oldact oder der Signalhandler verweisen auf
Speicherbereiche, die keine gültigen Teile des Adressraumes des
Prozesses sind.
EINTR Der Systemaufruf wurde unterbrochen.
ANMERKUNGEN
Es ist nicht möglich, mit der Funktion sigprocmask die Signale SIGKILL
oder SIGSTOP zu blockieren. Versuche werden stillschweigend
unterdrückt.
Die POSIX Spezifikationen definieren lediglich SA_NOCLDSTOP. Die
Benutzung von SA_ONESHOT und SA_RESTART ist nicht portabel.
Wird sigaction mit Null als zweitem Argument aufgerufen, kann der
augenblickliche Signalhandler abgefragt werden. Die Funktion kann auch
dazu benutzt werden, die Gültigkeit eines Signales für die
augenblickliche Maschine zu überprüfen, indem sie mit Null als zweitem
und drittem Argument aufgerufen wird.
Siehe auch sigsetops(3) für detaillierte Informationen über die
Manipulation von Signalen.
KONFORM ZU
POSIX
SIEHE AUCH
sigvec(2) kill(1), kill(2), killpg(2), pause(2), raise(3),
siginterrupt(3), signal(2), signal(7), sigsetops(3), sigvec(2).