Erwin: C: Prozess in Hintergrund verbannen

Beitrag lesen

Hi Forum,

heute mal ein wenig C:
Ich möchte ein zusätzliches Programm im Hintergrund ausführen, also forke ich einen neuen Prozess und überschreibe diesen mit exec:

  
pid_t pid;  
switch (pid = fork ()) {  
  case -1:  
    perror("fork()");  
    fprintf(stderr, "Error beim Aufruf von fork()\n");  
    return EXIT_FAILURE;  
  case 0:  
    /* fprintf(stdout, "Child is running: PPID : %d\n",     getppid()); */  
    execlp ("./my_prog", "my_prog", param1, NULL);  
    /* printf("Wird niemals mehr erreicht ...\n"); */  
    break;  
  default:  
    if (waitpid (pid, NULL, 0) != pid) {  
      perror ("waitpid()");  
      return EXIT_FAILURE;  
    }  
}  

my_prog macht einfach nur 30 Sekunden lang nix, damit ich sehe, obs wirklich in den Hintergrund wandert. Leider wartet nun mein Eltern-Prozess, bis das Kind beendet wurde, es passiert also nicht wirklich etwas.

Jemand eine Idee oder sogar eine Lösung :-)

Danke
  Erwin