Den Tod eines Kindprozesses verfolgen

Wie könnte ich die Spur der Tod eines Kindes verarbeiten, ohne dass der übergeordnete Prozess warten, bis der Kind-Prozess getötet habe?

Ich versuche ein client-server-Szenario der server akzeptiert die Verbindung von einem client und Gabeln, einen neuen Prozess für jede Verbindung akzeptiert.

Ich Ignoriere SIGCHLD-Signale zu verhindern, dass zombie-Kreation.

signal(SIGCHLD, SIG_IGN);
while(1)
{
  accept();
  clients++;
  if(fork() ==0)
  {
     childfunction();
     clients--;
  }
  else
  {
  }
}

Das problem in dem oben genannten Szenario ist, dass, wenn der Kind-Prozess wird getötet in der childfunction() Funktion die Globale variable clients ist nicht immer erniedrigt.

HINWEIS: ich bin auf der Suche für eine Lösung ohne Verwendung von SIGCHLD-signal ... Wenn möglich

InformationsquelleAutor der Frage codingfreak | 2010-03-04

Schreibe einen Kommentar