Appel système execvp () en C

Lorsqu’un appel système execvp () est effectué, il n’y a pas de retour si l’appel est réussi. Est-ce que cela signifie que le processus ne sera jamais terminé? Si oui, est-il toujours en état de marche? Je sais que c’est une question de base, mais je pense avoir une sérieuse confusion sur ce que cela signifie dans la page de manuel quand elle dit: “Les fonctions exec () ne retournent que si une erreur est survenue. La valeur de retour est -1 et errno est configuré pour indiquer l’erreur. ”

Merci d’avance!

execve, en cas de succès, remplace l’image de processus en cours d’exécution par un autre exécutable. Il n’y a donc aucun moyen que la fonction revienne, car le processus d’origine a disparu. C’est presque comme si vous appeliez exit () dans le premier processus.

Si elle * retourne *, cela signifie évidemment que l’image de processus actuelle n’a pas été remplacée, car quelque chose s’est mal passé. errno vous dit ce qui a mal tourné.