IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

POSIX C Discussion :

Problème avec execl


Sujet :

POSIX C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 11
    Points : 12
    Points
    12
    Par défaut Problème avec execl
    Voilà je me permets de poster un nouveau sujet sur ce forum suite à un petit soucis avec la fonction execl.

    Je souhaite dans mon programme créer un répertoire REP.
    J'ai donc créé le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if (fork() == 0) {
    	  printf("on cree le repertoire rep \n");
    	  execl("/usr/bin/mkdir","mkdir","REP",NULL);
    	  printf("on fait un exceclv \n");
    } else {
    	  wait(NULL);
    	  printf("Fin du recouvrement\n");
    	}
    A la sortie j'ai bien les 3 phrases que j'indique mais pas de répertoire
    Quelle pourrait être l'erreur?
    Merci d'avance

  2. #2
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Points : 870
    Points
    870
    Par défaut
    Salut,

    Tu peux voir l'erreur renvoyee par execl (s'il y en a) avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if (fork() == 0) {
    	  printf("on cree le repertoire rep \n");
    	  execl("/usr/bin/mkdir","mkdir","REP",NULL);
              perror(NULL);
    	  printf("on fait un exceclv \n");
    } else {
    	  wait(NULL);
    	  printf("Fin du recouvrement\n");
    	}
    En tout cas, peut etre que ca depend des systemes mais chez moi c'est /bin/mkdir

  3. #3
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    En passant, il y a une fonction mkdir(2) dans unistd.h.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  4. #4
    Membre émérite Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Points : 2 280
    Points
    2 280
    Par défaut
    Dans les distro basées sur debian, mkdir est dans /bin et non /usr/bin.
    "The quieter you become, the more you are able to hear"
    "Plus vous êtes silencieux, plus vous êtes capable d'entendre"

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 11
    Points : 12
    Points
    12
    Par défaut
    J'ai en effet remplacé le chemin par /bin/mkdir et cela fonctionne !
    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problèmes avec execl
    Par dancingmad dans le forum POSIX
    Réponses: 2
    Dernier message: 31/10/2008, 18h39
  2. Problème avec execl
    Par xeron33 dans le forum C
    Réponses: 4
    Dernier message: 10/06/2008, 20h42
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo