char *args[5];
args[0]="sudo";
args[1]="./a.out";
args[2]="arg1";
args[3]="arg2";
args[4]=NULL;
execvp("sudo", args);
Le shell divise la commande donnée en mots délimités par des espaces. Le premier mot est recherché dans PATH
, et tous les mots sont transmis en tant que paramètres à la commande.
Sinec execvp()
va chercher le PATH
pour vous, vous pouvez simplement passer "sudo" comme commande, puis les arguments à la commande. Notez que le premier argument de la commande est le nom de la commande.
La commande que vous exécutez est "sudo", donc c'est le premier argument; puis les mots restants en tant qu'arguments individuels, passés en tableau.
Mais execvp n'accepte-t-il que deux arguments? – Jarvis
Yup, négligé cela. Corrigé la réponse –