Getopt() langage C

Résolu
LaZo61 Messages postés 53 Statut Membre -  
LaZo61 Messages postés 53 Statut Membre -
Bonjour,

Je n,arrive pas a lance l,afficheur doption suivant
while ((option = getopt (argc, argv, "u:p:t")) != -1)
{
switch (option)
{ case 'u':
username = optarg;
break;
case 'd':
password = optarg;
break;
case 't':
transfer_rate = optarg;
break;

exit(0);
}
}
--
merci davance.

C* -----> Either exist as you are or be as you look <---- C*
Configuration: Linux
Firefox 1.0.7

10 réponses

  1. LaZo61 Messages postés 53 Statut Membre 5
     
    char *username;
    char *password;
    char *transfer_rate;
    extern char *optarg;
    int option;

    printf("saba\n");
    while ((option = getopt (argc, argv, "u:p:t")) != -1)
    {
    printf("nurcan\n");
    switch (option)
    { case 'u':
    username = optarg;
    break;
    case 'd':
    password = optarg;
    break;
    case 't':
    transfer_rate = optarg;
    break;
    }
    exit(0);
    }

    Voila normalement si il rentre dans la boucle il doit m'affiche "nurcan" mais il ne le fait pas donc il ne rentre pas dans la boucle c'est ce que je n'arrive pas a comprendre pourquoi ???

    Merci d'avance
    1
  2. Stupeflip Messages postés 391 Date d'inscription   Statut Membre Dernière intervention   94
     
    Pouet,

    Et quelle est l'erreur ? ^^
    0
    1. LaZo61 Messages postés 53 Statut Membre 5
       
      y a pas d'erreur il n'affiche rien il neglige cette fonction :(
      0
  3. Stupeflip Messages postés 391 Date d'inscription   Statut Membre Dernière intervention   94
     
    argv est bien défini comme un char ** ?
    0
  4. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    u p t sont dans le getopt, mais u d t dans le switch
    l'exit après le break n'est jamais exécuté

    exit
    }
    }

    je verrai plutot
    }
    exit
    }

    ce code n'imprime rien, il faudrait voir la suite du code
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    Que contient argv:

    printf("saba\n");

    printf("argc=%d\nargv[1]=%s\nargv[2]=%s\n", argc, argv[1], argv[2]);

    while ((option = getopt (argc, argv, "u:p:t")) != -1)

    ps: argv[0] contient le nom du programme exécuté
    0
  7. LaZo61 Messages postés 53 Statut Membre 5
     
    argv[1]=null
    argv[2]=/etc/lesskey.bin

    et donc?
    0
  8. LaZo61 Messages postés 53 Statut Membre 5
     
    j'ai oublie argc=1

    mais bon je ne voie pas toujours pourquoi il ne rentre pas dans la boucle
    0
  9. LaZo61 Messages postés 53 Statut Membre 5
     
    personne pour repondre ?
    plz je ramme depuis tout a lheure
    0
  10. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    Je ne vois aucune options -u arg ou -p arg ou -t arg
    imprime argv[3] argv[4]
    0
  11. LaZo61 Messages postés 53 Statut Membre 5
     
    G regle le probleme merci
    0