Question

Dans mon simple shell personnalisé Je lis des commandes à partir de l'entrée standard et les exécuter avec execvp (). Avant cela, je crée une fourchette du processus en cours et je l'appelle execvp () dans ce processus d'enfant, juste après, je l'appelle la sortie (0).

Quelque chose comme ceci:

pid = fork();

if(pid == -1) {
    perror("fork");
    exit(1);
}

if(pid == 0) {
    // CHILD PROCESS CODE GOES HERE...
    execvp(pArgs[0], pArgs);
    exit(0);
} else {
    // PARENT PROCESS CODE GOES HERE...
}

Maintenant, les commandes sont exécutées avec execvp () peut retourner des erreurs droite? Je veux gérer cela correctement et en ce moment, j'appelle toujours la sortie (0), ce qui signifie que le processus enfant aura toujours un état « OK ».

Comment puis-je retourner le statut propre de la execvp () appeler et le mettre dans la sortie () appeler? Devrais-je obtenir la valeur int que les rendements execvp () et le transmettre comme argument exit () au lieu de 0. Est-ce suffisant et correct?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top