L'Appel système fork() et la fonction execv

Je suis en train de lancer deux exécutables consécutivement à l'aide de ce code c:

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

int main (int argc, char *argv[])
{
    fork();
    execv("./prcs1", &argv[1]); //GIVE ADDRESS OF 2nd element as starting point to skip source.txt
    fork();
    execv("./prcs2", argv);
    printf("EXECV Failed\n");
}

Le programme s'arrête après la première execv() appel en dépit de la fourche, il n'arrive jamais à la deuxième execv(). J'ai essayé d'appeler wait() après la première fourche, mais je ne suis pas sûr que ce qu'il manque.

Des idées pourquoi le contrôle n'est pas de retour à la mère après que l'enfant quitte?

Ahh, l'ancien "fork et exec" l'idiome... malheureusement, il n'est pas tout à fait aussi littérale que vous l'avez.
Voulez-vous votre processus principal de bloquer et d'attendre que c'est l'exécution du processus fils?

OriginalL'auteur Mike | 2013-10-02