002
27.04.2005, 21:51 Uhr
BeS
|
Kannst du das etwas genauer beschreiben? Ich habe schon etwas ähnliches versucht:
Code: |
connected = !connected; if (connected) { child_pid = fork(); if (child_pid > 0) execlp("/usr/bin/emacs", "/usr/bin/emacs", "/tmp/test.txt", NULL);
gtk_image_set_from_stock ((GtkImage*)data, GTK_STOCK_CONNECT,GTK_ICON_SIZE_MENU); } else { if (child_pid > 0) kill(child_pid, 9);
gtk_image_set_from_stock ((GtkImage*)data, GTK_STOCK_DISCONNECT,GTK_ICON_SIZE_MENU); }
|
Damit wurde zwar der Prozess gestartet und damit auch emacs, aber das kill hatte nicht den gewüschten Effekt.
Wie fange ich ein SIGCHLD ab?
Danke!
EDIT: Dummer Fehler... es muß da oben natürlich if(child_pid == 0) heißen. Dann geht es mit excelp(), mit system() komischer Weise nicht. Ist ja aber eigentlich auch egal. Jetzt bleibt nur noch die Frage wie ich SIGCHLD von dem mit execlp gestarteten Programm abfangen kann. -- If art interprets our dreams, the computer execute them in the guise of programs! Dieser Post wurde am 27.04.2005 um 22:12 Uhr von BeS editiert. |