La fonction ci-dessous prend un tableau de pointeurs de char Exemple: arr [0]: ls arr [ 1]: -l arr [2]: -a arr [3]:/etc arr [4]: NULL/* Depuis execvp attend un NULL à la fin */linuux - execvp: Lors de l'exécution de la commande ls - erreur "ls: impossible d'accéder/etc: aucun fichier ou répertoire"
// function call is runCmd(arr);
la fonction définition est la suivante:
void runCmd(char *arr[]){
pid_t child_pid,tpid;
int child_status;
child_pid = fork();
if(child_pid == 0){
/* The child process executes the exec*/
execvp(arr[0],arr);
/*if it returns it must have failed */
fflush(stdout);
printf("Unknown Command \n");
exit(0);
}
else {
/* let the parent wait for the child */
do{
tpid = wait(&child_status);
}while(tpid != child_pid);
}
}
Après l'exécution, je reçois le message -
ls: cannot access /etc
: No such file or directory
I ajouté main() { char * rgs [] = { "ls", "-l", "-a", "/ etc", NULL}; runCmd (rgs); } ET l'a exécuté sous Linux. J'ai bien travaillé. Poster plus de code. –