Wie kann ich in C mit sigchld umgehen?

8

Ich muss richtig mit sigchld umgehen. Wie kann ich es mit meinem vorhandenen Code verwenden? Im Moment kann ich nicht auf den Child-Prozess warten, es sei denn, ich verwende 0 statt WNOHANG|WUNTRACED .

%Vor%

Wenn ich den Schlaf entfernen, dann wird der Elternteil ausgeführt. 1. Warum?

    
kanoz 24.08.2011, 07:11
quelle

1 Antwort

22

Hier ist ein Anfang (aber lesen Sie weiter unten):

%Vor%

Natürlich ist das alles sinnlos . Wenn der Elternteil einfach SIGCHLD ignoriert, werden die Kinder automatisch geerntet und verwandeln sich nicht in Zombies.

Zitieren TLPI :

  

Das explizite Festlegen der Disposition von SIGCHLD auf SIG_IGN verursacht alle   Kind-Prozess, der später beendet wird, um sofort entfernt zu werden   aus dem System anstatt in einen Zombie umgewandelt zu werden .

So etwas wie das sollte den Trick für Sie tun:

%Vor%     
cnicutar 24.08.2011 07:22
quelle

Tags und Links