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

Linux Discussion :

getopt, plusieurs arguments a une option


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Tex-Twil
    Inscrit en
    Avril 2004
    Messages
    447
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 447
    Par défaut getopt, plusieurs arguments a une option
    Bonjour,
    j'utilise dans mon programme C la fonction getopt de la librairie GNU afin de parser les arguments de mon programme.
    http://www.gnu.org/software/libc/man...de/Getopt.html

    Elle permet, entre autre, de spécifier quand une option nécessite un argument. Cet argument est place dans la variable optarg.
    Per example:
    Moi j'ai besoin de passer deux arguments a une option:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ./myProg -c file1 file2
    Je ne trouve nulle part dans la doc comment il faut faire.

    merci pour votre aide.

    Tex

  2. #2
    Membre éclairé Avatar de Tex-Twil
    Inscrit en
    Avril 2004
    Messages
    447
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 447
    Par défaut
    Bon,
    je m'en sors avec optind qui est positionné et je peux récupérer le deuxième argument avec argv[optind]. C'est pas top comme solution mais ca marche.

    Tex

  3. #3
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Généralement, les solutions acceptées sont :
    -option "arg1,arg2,arg3,..."
    où l'on fait le parsing avec strstr() par exemple.
    -option arg1 -option arg2 -option arg3

    Ta solution n'est pas standard, je ne dis pas qu'elle est mauvaise (je n'ai pas réfléchi à d'éventuels inconvénients, mais déjà elle n'accepte qu'un nombre fixé d'arguments), mais elle va déconcerter les utilisateurs expérimentés.

    --
    Jedaï

  4. #4
    Membre éclairé Avatar de Tex-Twil
    Inscrit en
    Avril 2004
    Messages
    447
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 447
    Par défaut
    Citation Envoyé par Jedai Voir le message
    Généralement, les solutions acceptées sont :
    -option "arg1,arg2,arg3,..."
    où l'on fait le parsing avec strstr() par exemple.
    -option arg1 -option arg2 -option arg3

    Ta solution n'est pas standard, je ne dis pas qu'elle est mauvaise (je n'ai pas réfléchi à d'éventuels inconvénients, mais déjà elle n'accepte qu'un nombre fixé d'arguments), mais elle va déconcerter les utilisateurs expérimentés.

    --
    Jedaï
    Ok merci, je vais faire ça comme tu as indiqué.
    Tex

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

Discussions similaires

  1. Optparse, passer plusieurs fichiers en arguments d'une même option
    Par michel42 dans le forum Général Python
    Réponses: 13
    Dernier message: 05/04/2012, 09h35
  2. getopts - plusieurs options/arguments
    Par Nelmo dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 09/01/2012, 10h47
  3. Getopt, liste d'argument assignée à une option
    Par gobgob dans le forum Modules
    Réponses: 3
    Dernier message: 19/01/2007, 11h02
  4. Perl : Plusieurs arguments pour analyser une ligne
    Par blackj dans le forum Langage
    Réponses: 2
    Dernier message: 14/12/2006, 22h22
  5. Réponses: 3
    Dernier message: 25/07/2006, 09h25

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