wie zu töten Kind der Gabel?

Ich habe den folgenden code ein, durch die ein Kind Gabel. Und ich will töten das Kind, bevor Sie es zu beenden Sie seine Ausführung in der übergeordneten. wie es zu tun?

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int i;

main (int ac, char **av)
{
  int pid;

  i = 1;

  if ((pid = fork()) == 0) {
    /* child */
    while (1) {
      printf ("I m child\n");
      sleep (1);
    }
  }
  else {
    /* Error */
    perror ("fork");
    exit (1);
  }
  sleep (10)

   //TODO here: how to add code to kill child??

}
  • fork() gibt eine pid_t, nicht ein int, so sollten Sie deklarieren die variable als solche.
  • In keinem Zusammenhang zu der ursprünglichen Frage: Wenn die Gabel gibt ein neuer Prozess erzeugt wird (bei Erfolg) " und " beide Eltern und Kind-Ausführung fortsetzen, von dem Punkt, wo fork aufgerufen wurde. pid = 0 für ein Kind-Prozess (gut, es kann immer bekommen Sie über getpid()) und der pid > 0 für einen übergeordneten Prozess. Der Fehler ist nur bei der Gabel gibt -1 zurück. In Ihrem code, den Sie behandeln eine "parent-Prozess" Teil, wie ein Fehler.
  • mögliche Duplikate von Wie man ein Kind töten Prozess, durch den Eltern-Prozess?
  • Froh, dass der Frage-Titel nicht verlangen Begriffsklärung. Hinweis: zu jedem Kindermord irren, dass diese "Gabel" und nicht "Gabel".
InformationsquelleAutor MOHAMED | 2012-11-07
Schreibe einen Kommentar