bonsoir
je suis débutante donc ma question va vous paraître bête, mais je serais très contente si vous me repondiez.
en fait je ne comprend pas du tout ce que fais l'appel système exec et toute sa famille dailleur.
voila :-)
merci
Il te permet de lancer un programme...
Plus précisément, ton programme est remplacé par celui que tu demandes d'executer, il est donc conseillé de faire un fork avant si tu veux faire autre chose derrière.
C'est de quel point de vue que tu ne comprends pas, à quoi il sert, comment on l'utilise ?
int main()
{ char* arg[] = {"/bin/ps","f",NULL};
printf("bonjour....\n);
La ca affiche bonjour si tu ajoutes un " :)
execvp("/bin/ls",arg);
Ca remplace ton programme par ls (pas très utile de faire execvp si tu lui donnes le chemin complet) avec comme arguments "/bin/ps" et "f". En sachant que normalement, par convention, le premier argument aurait du être le nom du programme tel qu'invoqué, donc "/bin/ls"... Tu est sur que c'est ls et pas ps d'ailleurs ? parce que bon, ps a une option f mais ls n'a pas d'option sans - :-)
printf("echec de execvp\n");
printf("erreur %s\n",strerror(errno));
return 0;
Dans la mesure ou execvp remplace ton processus, cette partie ne devrait pas s'executer. Si tu arrives la c'est que exevp a échoué (par exemple que /bin/ls n'existe pas) donc tu affiches l'erreur.
# Il execute :)
Posté par Pascal Terjan (site web personnel) . Évalué à 4.
Plus précisément, ton programme est remplacé par celui que tu demandes d'executer, il est donc conseillé de faire un fork avant si tu veux faire autre chose derrière.
C'est de quel point de vue que tu ne comprends pas, à quoi il sert, comment on l'utilise ?
[^] # Re: Il execute :)
Posté par soussou . Évalué à 1.
//programme test_exec.c
#include<unistd.h>
#include<stdio.h>
#include<stdlib.h>
#include<errno.h>
int main()
{ char* arg[] = {"/bin/ps","f",NULL};
printf("bonjour....\n);
execvp("/bin/ls",arg);
printf("echec de execvp\n");
printf("erreur %s\n",strerror(errno));
return 0;
}
[^] # Re: Il execute :)
Posté par Alban Crequy (site web personnel) . Évalué à 3.
[^] # Re: Il execute :)
Posté par Pascal Terjan (site web personnel) . Évalué à 5.
[^] # Re: Il execute :)
Posté par soussou . Évalué à 1.
[^] # Re: Il execute :)
Posté par Uld (site web personnel) . Évalué à 1.
[^] # Re: Il execute :)
Posté par soussou . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.