Tag: signal-handling
In der C-Standard-Bibliothek, Signalverarbeitung definiert, wie ein Programm behandelt verschiedene Signale, während es ausgeführt wird. Ein signal kann berichten einige außergewöhnliche Verhalten innerhalb des Programms (z.B. division durch null), oder ein signal kann berichten, ein asynchrones Ereignis außerhalb des Programms (z.B. jemanden schlagen eine interaktive Aufmerksamkeit Taste auf einer Tastatur).
1
Antworten
Ich habe ein Python-Skript verwalten einer gdb-Prozess auf Windows, und ich muss in der Lage sein zu senden, ein SIGINT an den Prozess hervorgebracht, um das anhalten der Ziel-Prozess (verwaltet von gdb) Scheint es, dass es nur
3
Antworten
In meinem Multithread-GUI-Anwendung habe ich die folgenden signal-handling-code. Ich möchte, um dies zu verbessern-code so, dass es richtig ist und Gewindeschneiden sicher, aber es gibt einige Dinge, die ich nicht vollständig verstehen, in der signal-handling: ist das
4
Antworten
Was ist der Unterschied zwischen diesen Einstellungen? $SIG{CHLD} = 'IGNORE' $SIG{CHLD} = 'DEFAULT' $SIG{CHLD} = '' $SIG{CHLD} = undef Laut "Advanced Programming in the UNIX Environment, 2nd edition", Bild 10.1 der default-Wert von SIGCHLD ist "ignorieren." Wenn
2
Antworten
Habe ich diese decorator: def timed_out(timeout): def decorate(f): if not hasattr(signal, "SIGALRM"): return f def handler(signum, frame): raise TimedOutExc() @functools.wraps(f) def new_f(*args, **kwargs): old = signal.signal(signal.SIGALRM, handler) signal.alarm(timeout) try: result = f(*args, **kwargs) finally: signal.signal(signal.SIGALRM, old) signal.alarm(0)
5
Antworten
#include<stdlib.h> #include<unistd.h> #include<signal.h> int main(){ pid_t pid = fork(); if(pid==0){ system("watch ls"); } else{ sleep(5); killpg(getpid(),SIGTERM); //to kill the complete process tree. } return 0; } Terminal: anirudh@anirudh-Aspire-5920:~/Desktop/testing$ gcc test.c anirudh@anirudh-Aspire-5920:~/Desktop/testing$ ./a.out Terminated für die ersten 5
5
Antworten
Ich möchte schreiben Sie einen signal-handler zu fangen SIGSEGV. Ich schützen einen Speicherblock zum Lesen oder schreiben verwenden char *buffer; char *p; char a; int pagesize = 4096; mprotect(buffer,pagesize,PROT_NONE) Diese schützt pagesize bytes des Speichers ab Puffer
3
Antworten
mit select() mit Rohr - das ist, was ich Tue, und jetzt muss ich fangen SIGTERM. wie kann ich es tun? Muss ich es tun, wenn select() gibt Fehler ( < 0 ) ? InformationsquelleAutor hari |
2
Antworten
Ich würde gerne wissen, wie genau die Ausführung der asynchronen signal-Handler funktioniert unter Linux. Erstens bin ich nicht sicher die thread die signal-handler. Zweite, ich würde gerne wissen, die Schritte, die befolgt werden, um den Faden führen
5
Antworten
In python 2.6 unter Linux, kann ich auch mit dem folgenden zu handhaben, ein TERM-signal: import signal def handleSigTERM(): shutdown() signal.signal(signal.SIGTERM, handleSigTERM) Gibt es eine Möglichkeit, um die setup-Routine für alle empfangenen Signale von dem Prozess, andere
7
Antworten
Ich habe eine Anwendung die ich nutzen, um zu fangen "segmentation fault" oder Strg-c. Mit dem code unten, ich bin in der Lage zu fangen die "segmentation fault", aber der handler wird aufgerufen, wieder und wieder. Wie
2
Antworten
Das ist es. Nur Wundern über den Unterschied zwischen SIGSTOP und SIGTSTP. InformationsquelleAutor der Frage user1419715 | 2012-08-09
5
Antworten
Unter Linux/Unix gibt es Signale. Die StrgC ( SIGINT ) ist mir klar. Nun, in einigen anderen Anwendungen gibt es Signale über StrgX?! Ist das auch ein signal, oder tut es erzeugt eine escape-Sequenz? Gibt es etwas,
6
Antworten
Kann ich stellen/weitergeben, Argumente für Signalhandler? /* Signal handling */ struct sigaction act; act.sa_handler = signal_handler; /* some more settings */ Nun, handler sieht so aus: void signal_handler(int signo) { /* some code */ } Will ich
6
Antworten
Ich habe gerade mit der Implementierung von signal-Listener in einem django-Projekt. Ich verstehe zwar, was Sie sind und wie Sie diese verwenden. Ich habe eine harte Zeit, herauszufinden, wo sollte ich Sie stellen. Die Dokumentation aus der
6
Antworten
Bin ich etwas wie dieses: #include <signal.h> class myClass { public: void myFunction () { signal(SIGIO,myHandler); } void myHandler (int signum) { /** * Handling code */ } } Ich arbeite unter Ubuntu mit gcc. Aber es
5
Antworten
Ich möchte schreiben Sie einen signal-handler zu fangen SIGSEGV. Ich schützen einen Speicherblock zum Lesen oder schreiben verwenden char *buffer; char *p; char a; int pagesize = 4096; mprotect(buffer,pagesize,PROT_NONE) Diese schützt pagesize bytes des Speichers ab Puffer