worauf wartet der kindprozess?
-
Hallo
ich frage mich wieso das Programm sich nicht beenden möchte? -Was fehlt da, dass sogar direkte exit(0) Anweisung nicht weiter hilft? (deswegen auskommentiert)
Hier ein Beispiel:
include <sys/wait.h> #include <signal.h> //#include <cstdlib> #include <iostream> using namespace std; void kill_zombie( int sig) { wait3(NULL, WNOHANG, NULL); } void kind( ) { pid_t pid; pid = fork( ); if ( pid == 0 ) { cout << "kind" << endl; //exit(0); } else cout << "fater" << endl; } int main( void ) { signal(SIGCHLD, kill_zombie); kind( ); return 0; }
Danke
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x) in das Forum Linux/Unix verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Bei mir tut das Programm das, was es soll, und beendet sich auch. Ein Zombie bleibt auch nicht übrig.
-
Habe gerade noch mal ausprobiert - hier ein Screen
http://imageshack.us/photo/my-images/194/problemti.png/das Programm beendet sich nicht, sondern wartet auf irgend etwas.
ich benutze Ubuntu 2.6.38-8-generic
-
Ja, so sieht das bei mir auch aus. Das liegt aber nur daran, dass die Ausgabe des Prompts der Shell zwischen die Ausgabe deines Programms gerutscht ist. Tippe einfach mal Enter, dann siehst du, was ich meine.
-
Ok, das würde es erklären - danke