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.2 Das neue Signalkonzept  downtop

Da ich davon ausgehen kann (muss), dass Sie bereits C kennen und schätzen gelernt haben, kennen Sie vermutlich auch die ANSI C-Funktion zur Behandlung von Signalen. Keine Sorge, ob Sie bereits mit dieser Funktion vertraut sind oder nicht, ist hier nicht von Bedeutung. Wenn Sie mit dem Thema vertraut sind, werden Sie sich vermutlich fragen, wozu ein neues Signalkonzept? Für diejenigen, die das alte Konzept kennen, sei der folgende Abschnitt gedacht. Alle anderen können diesen getrost überfliegen bzw. überspringen.


Rheinwerk Computing

8.2.1 Wozu ein »neues« Signalkonzept?  toptop

Das alte Signalkonzept hat schon einige Jahre auf dem Buckel und krankte eigentlich schon immer ein wenig. Versuchen Sie z. B., einen aktuellen Signalstatus abzufragen, ohne diesen zu verändern. So kam es manchmal vor, dass der Signalstatus zur Abfrage verändert werden musste, nur um anschließend einen neuen Signalhandler einzurichten. Somit wird signal() zweimal hintereinander aufgerufen.

Ein weiteres Manko war, dass es nicht möglich war, ein Signal kurz zu blockieren. Man behalf sich immer damit, indem man in einer Schleife ein bestimmtes Flag abgefragte, ob es sich verändert hat oder nicht. Falls nicht, wurde im Prozess einfach die Funktion pause() aufgerufen, um auf die Ankunft des Signals zu warten. Nun konnte es passieren, dass dieses Signal genau in der Schleife und vor dem pause()-Aufruf eintraf. Somit blieb der Prozess in einer Endlosschleife sitzen. Zugegeben, dass dieser Fehler auftrat, war sehr unwahrscheinlich, doch wenn er auftrat, war es kaum noch möglich, diesen Fehler nachzuvollziehen.

 << 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