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