Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger

 << zurück
Linux-UNIX-Programmierung von Jürgen Wolf
Das umfassende Handbuch – 2., aktualisierte und erweiterte Auflage 2006
Buch: Linux-UNIX-Programmierung

Linux-UNIX-Programmierung
1216 S., mit CD, 49,90 Euro
Rheinwerk Computing
ISBN 3-89842-749-8
gp Kapitel 8 Signale
  gp 8.1 Grundlage zu den Signalen
    gp 8.1.1 Signalmaske
    gp 8.1.2 Signale und fork()
    gp 8.1.3 Signale und exec
    gp 8.1.4 Übersicht zu den Signalen
  gp 8.2 Das neue Signalkonzept
    gp 8.2.1 Wozu ein »neues« Signalkonzept?
  gp 8.3 Signalmenge initialisieren
  gp 8.4 Signalmenge hinzufügen oder löschen
  gp 8.5 Signale einrichten oder erfragen
    gp 8.5.1 Einen Signalhandler einrichten, der zurückkehrt
  gp 8.6 Signal an den eigenen Prozess senden – raise()
  gp 8.7 Signale an andere Prozesse senden – kill()
  gp 8.8 Zeitschaltuhr einrichten – alarm()
  gp 8.9 Prozesse stoppen, bis ein Signal eintritt – pause()
  gp 8.10 Prozesse für eine bestimmte Zeit stoppen – sleep() und usleep()
  gp 8.11 Signalmaske erfragen oder ändern – sigprocmask()
  gp 8.12 Prozess während einer Änderung der Signalmaske stoppen – sigsuspend()
  gp 8.13 Prozesse synchronisieren


Rheinwerk Computing

8.11 Signalmaske erfragen oder ändern – sigprocmask()  toptop

Die Menge der Signale eines Prozesses, die im Augenblick blockieren, wird als Signalmaske bezeichnet. Jeder neue Prozess, der erzeugt wird, erbt die Signalmaske von seinem Elternprozess. Mit der Funktion sigprocmask() können Sie diese Signalmaske erfragen oder verändern. Die Syntax zu sigprocmask() lautet:

#include <signal.h>
int sigprocmask (int how,
                 const sigset_t *sig_mask,
                 sigset_t *sig_mask_old);

Mit how geben Sie an, wie Sie die Signalmaske ändern wollen. Dazu können Sie folgende Angabe machen:


Tabelle 8.9    Parameter, die angeben, wie die Signalmaske geändert werden soll

Konstante Bedeutung
SIG_BLOCK Zur Signalmaske des Prozesses werden die Signale aus sig_mask hinzugefügt.
SIG_UNBLOCK Von der Signalmaske des Prozesses werden die Signale aus sig_mask entfernt.
SIG_SETMASK Eine NEUE Signalmaske wird mit den Signalen belegt, die in sig_mask angegeben sind.

Bei den beiden Argumenten sig_mask und sig_mask_old gilt es, drei Fälle zu unterscheiden:


Tabelle 8.10    Signalmaske erfragen, setzen oder beides auf einmal

Angabe Bedeutung
sig_mask != NULL sig_mask_old !=NULL Damit wird die aktuelle Signalmaske in die Adresse von sig_mask_old geschrieben. Anschließend wird die Signalmaske sig_mask entsprechend dem Argument how geändert. Somit kann der Zustand sig_mask_old jederzeit wieder hergestellt werden.
sig_mask != NULL sig_mask_old = NULL Damit wird die Signalmaske sig_mask entsprechend how geschrieben.
sig_mask == NULL sig_mask_old != NULL Damit kann die aktuelle Signalmaske erfragt werden. Die aktuelle Signalmaske befindet sich dann in der Adresse von sig_mask_old. Das Argument how hat dabei keinerlei Bedeutung.

Ein Beispiel zu sigprocmask() finden Sie am Ende des Kapitels unter Prozesse synchronisieren.

 << zurück
  
  Zum Rheinwerk-Shop
Neuauflage: Linux-UNIX-Programmierung
Neuauflage:
Linux-UNIX-
Programmierung

bestellen
 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchtipps
Zum Rheinwerk-Shop: Linux-Server






 Linux-Server


Zum Rheinwerk-Shop: Das Komplettpaket LPIC-1 & LPIC-2






 Das Komplettpaket
 LPIC-1 & LPIC-2


Zum Rheinwerk-Shop: Linux-Hochverfügbarkeit






 Linux-
 Hochverfügbarkeit


Zum Rheinwerk-Shop: Shell-Programmierung






 Shell-
 Programmierung


Zum Rheinwerk-Shop: Linux Handbuch






 Linux Handbuch


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
Info





Copyright © Rheinwerk Verlag GmbH 2006
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern