Getopt() langage C

Résolu/Fermé
LaZo61 Messages postés 53 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 24 mai 2007 - 4 mai 2007 à 16:34
LaZo61 Messages postés 53 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 24 mai 2007 - 7 mai 2007 à 14:23
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);
}
}

10 réponses

LaZo61 Messages postés 53 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 24 mai 2007 5
7 mai 2007 à 09:21
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
Stupeflip Messages postés 391 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 4 décembre 2007 94
4 mai 2007 à 16:46
Pouet,

Et quelle est l'erreur ? ^^
0
LaZo61 Messages postés 53 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 24 mai 2007 5
4 mai 2007 à 16:48
y a pas d'erreur il n'affiche rien il neglige cette fonction :(
0
Stupeflip Messages postés 391 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 4 décembre 2007 94
4 mai 2007 à 16:54
argv est bien défini comme un char ** ?
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
5 mai 2007 à 15:49
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
7 mai 2007 à 09:48
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
LaZo61 Messages postés 53 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 24 mai 2007 5
7 mai 2007 à 09:59
argv[1]=null
argv[2]=/etc/lesskey.bin


et donc?
0
LaZo61 Messages postés 53 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 24 mai 2007 5
7 mai 2007 à 10:21
j'ai oublie argc=1

mais bon je ne voie pas toujours pourquoi il ne rentre pas dans la boucle
0
LaZo61 Messages postés 53 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 24 mai 2007 5
7 mai 2007 à 12:08
personne pour repondre ?
plz je ramme depuis tout a lheure
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
7 mai 2007 à 13:34
Je ne vois aucune options -u arg ou -p arg ou -t arg
imprime argv[3] argv[4]
0
LaZo61 Messages postés 53 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 24 mai 2007 5
7 mai 2007 à 14:23
G regle le probleme merci
0