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

C Discussion :

Problème exec / execvp


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2013
    Messages : 1
    Par défaut Problème exec / execvp
    Bonjour,
    j'utilise un execvp dans un programme pour executer une commande bash : où c-> un tableau de char *

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    int exec_commande(commande * c) {
      int ret=fork();
      switch (ret) {
      case 0:
        execvp( (c->nom)[0], c->nom );
        break;
      default:
        wait(NULL);
        break;
        }
      return 0;
    }
    Le programme fonctionne parfaitement bien lorsque c->nom contient un nombre pair d'argument (par exemple {"echo","123"} ou {"ls","-l"})
    Mais le execvp n'execute pas la commande lorque le nombre d'argument de c->nom est imapair (par exemple {"echo","123","456"})
    Je rage sur mon code qui est l'un des plus propre que j'ai eu à faire dans ma courte vie. J'espère que vous pourrez m'aider.

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2014
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 345
    Par défaut
    Mais quelle horreur ! Un switch pour tester un seul cas ?! Si c'est l'un des codes les plus propres que t'aies fait, qu'est-ce que le reste doit être alors
    A part ça, ton code a l'air bon. Tu as vérifié que c->nom terminait bien par un NULL ?

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    En premier lieu...

    " Quel horreur "

    Je rejoins the Hound.. Un switch pour un seul cas, c'est... "floklorique".

    Ensuite, je t'invite à lire la documentation sur les commandes d'exec : http://man.developpez.com/man3/exec/

    J'appuie notamment sur le fait que la fonction demande TOUJOURS d'avoir NULL en dernier paramètre.

Discussions similaires

  1. Problème exec sous Linux
    Par jaggy19 dans le forum Langage
    Réponses: 4
    Dernier message: 29/06/2007, 14h13
  2. [SQL SERVER 2k]Problème EXEC sp_executesql
    Par Filippo dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 18/07/2006, 11h58
  3. [Système] problème avec la fonction exec
    Par SegmentationFault dans le forum Langage
    Réponses: 1
    Dernier message: 30/06/2006, 17h59
  4. [Système] Problème avec la fonction exec()
    Par ben_harper dans le forum Langage
    Réponses: 13
    Dernier message: 28/06/2006, 11h32
  5. [FLASH MX2004] Problème avec fscommand("exec", ...
    Par djo.mos dans le forum Flash
    Réponses: 10
    Dernier message: 24/08/2005, 07h49

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