Ein Signal ist eine Benachrichtigung an einen Prozess, bei dem ein Ereignis aufgetreten ist. Signale werden manchmal als Software-Interrupts bezeichnet. Signale sind analog zu Hardware-Interrupts insofern, als sie den normalen Ablauf der Ausführung eines Programms unterbrechen; In den meisten Fällen ist es nicht möglich, genau vorherzusagen, wann ein Signal ankommt. Sie sind in den C-Standards definiert und in POSIX erweitert, aber viele andere Programmiersprachen / -systeme bieten auch Zugriff darauf.
sigsuspend ändert die Signalmaske und unterbricht die Ausführung des aufrufenden Threads, bis er empfangen wird ein "Signal, dessen Wirkung entweder darin besteht, eine Signalfangfunktion auszuführen oder den Prozess zu beenden" und dann (f...
14.11.2016, 15:17
Verwenden Sie den Trap, um Signale wie folgt zu erfassen:
%Vor%
Und schließe das Terminal mit Gewalt.
Der Inhalt in log.txt ist dann (unter redhat linux):
1
18
1
17
0
Woher kommen diese Signale?
05.04.2011, 01:35
Ich muss bei einem Skript, das die Blockierung von io blockiert, Timeouts geben.
Überraschenderweise stellt sich heraus, dass exit hängt, wenn eine offene Pipe zu einem Subprozess existiert:
%Vor%
Ohne open call funktioniert es, das E...
25.01.2016, 05:27
Die klassische Methode, einen Handler für ein bestimmtes Signal anzugeben, ist via sigaction . Linux stellt zusätzlich die signalfd -Funktionalität zur Verfügung, wo wir Signale mit einem Dateideskriptor verbinden und dann select / (e) poll...
26.11.2013, 21:14
Ich bin in einer Situation, in der ich einen binären Suchbaum (BST) in einem Signal-Handler lesen muss ( SIGSEGV Signal-Handler, der nach meinem Wissen pro Thread-Basis ist). Die BST kann von den anderen Threads in der Anwendung geändert werden...
13.12.2011, 16:00
Mein Fall ist ziemlich einfach: Ich möchte, dass mein C ++ - Programm Unix-Signale verarbeitet. Dazu stellt glibc eine Funktion in signal.h namens sigaction bereit, die erwartet, dass sie einen Funktionszeiger als zweites Argument erhält.
%...
13.05.2013, 11:28
Wie im Titel angegeben. Kann ich std::atomic<> in einem Signalhandler verwenden oder stellt sig_atomic_t andere Compilerfunktionen zur Verfügung?
11.04.2013, 12:39
Überlegen Sie:
%Vor%
(ctrl-c wurde 3 mal getroffen, gefolgt von ctrl-d)
Ich möchte, dass read nach der Ausführung der Falle abgebrochen wird. Gibt es einen sauberen Weg, dies zu erreichen?
07.12.2017, 18:28
Ich hatte eine Frage, von der ich nicht weiß, ob sie überhaupt Sinn ergibt:
Wenn es in einem Unterbrechungsvektor eine Unterbrechungsfunktion gibt, bei der jeder Adressenschlitz ein Zeiger auf eine Funktion ist, die den Interrupt behandelt (Art...
14.08.2014, 01:05
Ich versuche eine Python-Timeout-Ausnahme zu erstellen, die in Millisekunden ausgeführt wird.
Die python signal.alarm-Funktion hat eine Auflösung von 1 Sekunde.
Wie würde man eine äquivalente Funktion erhalten, die ein SIGALRM-Signal für e...
22.09.2010, 15:12