• [^] # Re: Il execute :)

    Posté par . En réponse au message appel système exec. Évalué à 5.

    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.