Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
4960 connectés 

  FORUM HardWare.fr
  Programmation
  C

  GETopt

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

GETopt

n°1234059
balakam
Posté le 29-10-2005 à 12:42:08  profilanswer
 

Bonjour est ce que quelqu un sait comment utiliser la fonction getopt avec plusieur options en parametre?
merci

mood
Publicité
Posté le 29-10-2005 à 12:42:08  profilanswer
 

n°1234060
olivthill
Posté le 29-10-2005 à 12:48:57  profilanswer
 

Quel est ton système exploitation, quel est ton compilateur ?
Je ne trouve pas GETOpt sous Windows avec mon Borland C.
 
Si c'est pour manipuler des fonctions pouvant avoir plusieurs paramètres, il faut utiliser va_start, va_arg, et va_end. Par exemple :
 

Code :
  1. #include <stdio.h>
  2. #include <stdarg.h>
  3. /* calculate sum of a 0 terminated list */
  4. void sum(char *msg, ...)
  5. {
  6.    int total = 0;
  7.    va_list ap;
  8.    int arg;
  9.    va_start(ap, msg);
  10.    while ((arg = va_arg(ap,int)) != 0) {
  11.       total += arg;
  12.    }
  13.    printf(msg, total);
  14.    va_end(ap);
  15. }
  16. int main(void) {
  17.    sum("The total of 1+2+3+4 is %d\n", 1,2,3,4,0);
  18.    return 0;
  19. }


 
Edit: Je me souviens maintenant que cela existe sous Unix. Par exemple :

Code :
  1. while( (c = getopt(argc, argv, "Ve:T:P:H:" )) != EOF )
  2.   {
  3.    switch(c)
  4.     {
  5.      case 'V' : vflag++ ; out++ ; break ;
  6.      case 'e' : CB_Environ = optarg ; break ;
  7.      case 'T' : tunes  = optarg ; break ;
  8.      case 'P' : strcpy( Input_Code, optarg );break;
  9.      case 'H' : strcpy( Input_Time, optarg );break;
  10.      case '?' : errflg++ ; out++ ; break ;
  11.     }
  12.   }


Message édité par olivthill le 29-10-2005 à 12:51:40
n°1234061
balakam
Posté le 29-10-2005 à 12:51:07  profilanswer
 

C'est du c-unix, man 3 getopt.
merci

n°1234067
Elmoricq
Modérateur
Posté le 29-10-2005 à 13:17:55  profilanswer
 

getopt est pas standard. Ni ISO, ni POSIX, c'est donc propre à ton OS.

n°1234074
balakam
Posté le 29-10-2005 à 14:01:09  profilanswer
 

A ton avis ce code me permettra de passer plusieurs parametre en ligne?

n°1234089
olivthill
Posté le 29-10-2005 à 14:25:27  profilanswer
 

Oui, le code, que je montre plus haut, permet de lire plusieurs paramètres qui sont passés sur la ligne de commande. C'est un code qui marche et j'ai juste fait un copier/coller pour montrer un exemple. Dans mon cas le programme sera par exemple appelé avec la ligne de commande :

le_prog.exe -V -e1 -T2 -Ptoto -Htiti

On peut avoir soit un flag seul (ex : -V), ou bien un flag avec une chaine de caractères (ex : -Ptoto (mais dans ce dernier cas, je ne suis plus très sûr s'il faut coller "toto" derrière "-P" ou s'il faut un espace)).


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  GETopt

 

Sujets relatifs
getopt problemgetopt()
[C] fonction GETOPT[MSVC++ 6.0] getopt_long ça existe sous win ?
Plus de sujets relatifs à : GETopt


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)