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

  1. #1
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    mai 2011
    Messages
    201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : mai 2011
    Messages : 201
    Points : 130
    Points
    130
    Par défaut Problème d'inclusion d'une variable dans ligne de commande
    Bonjour ,

    Je développe un programme en C en utilisant le compilateur gcc avec un Raspberry Pi.

    Mon problème est le suivant :

    Je voudrais faire un appel système avec dans la ligne de commande une variable .

    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #include <stdlib.h>
     
    char param[]="paramètre";
     
    int main()
    {
        system ("ma_ligne_de_commande -o param");
    }

    Le but de la manœuvre est que param soit lu par la commande system de façon à donner un fichier en sortie qui soit du nom du paramètre.

    J'ai essayé plusieurs syntaxes, mais je n'y suis pas arrivé.

    De l'aide s.v.p

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    avril 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Transports

    Informations forums :
    Inscription : avril 2012
    Messages : 7
    Points : 25
    Points
    25
    Par défaut
    Il faut utiliser les paramètres standards de la fonction "main" et passer par une chaine temporaire pour ajouter le paramètre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    int main(int argc, char **argv) // argv[0]:nom du programme, argv[1]:nom du parametre 1, ...
    {
       char maCommande[200]  ; // a mettre a jour selon la taille de la commande et la taille du parametre ou passer par une allocation
     
       sprintf(maCommande, "ma_ligne_de_commande -o %s", argv[argc - 1]); // argc - 1 pour utiliser le dernier parametre
     
       printf("maCommande sera %s\n", maCommande);
     
       system(maCommande);
     
       return 0;
    }

  3. #3
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    mai 2011
    Messages
    201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : mai 2011
    Messages : 201
    Points : 130
    Points
    130
    Par défaut Merci
    Je ne connaissais pas sprintf.

    Ton aide est la bienvenue.

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

Discussions similaires

  1. [Batch] Problème d'utilisation d'une variable dans une boucle
    Par Zerach dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 06/12/2017, 13h41
  2. Problème d'affichage d'une variable dans un doc Word
    Par d.martin77 dans le forum VBA Word
    Réponses: 0
    Dernier message: 11/06/2014, 22h55
  3. Réponses: 2
    Dernier message: 24/03/2009, 10h09
  4. Réponses: 3
    Dernier message: 06/05/2007, 21h11
  5. Probléme pour insérer une variable dans un champs
    Par BOUTRAIS dans le forum Access
    Réponses: 2
    Dernier message: 11/04/2006, 23h45

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