julien_54 | J'ai lu la spécification, et j'ai surtout lu ca :
"La fonction getopt() renvoie le caractère de l'option s'il en trouve une, `:' s'il manque un paramètre pour une option, `?' s'il y a un caractère inconnu, et EOF (-1) à la fin de la liste des options. "
Le problème c'est que ce n'est pas le comportement que j'observe... je voulais juste savoir si c'est un bug connu, où si c'est moi qui l'utilise mal
Code :
- int argumentsComputing(int argc,char **argv,char *c_filename,int *verbose)
- {
- int c=0;
- /* switch on each argument */
- while ((c = getopt(argc, argv, ":c:v" )) != EOF)
- {
- switch (c)
- {
- case 'v':
- *verbose=1 ;
- break;
- case 'c':
- if ((c_filename=(char *)calloc(sizeof(char),strlen(optarg)+1))==NULL)
- {
- printf("! Problem when allocating memory ! #Verif-1#\n" );
- return -1;
- }
- if (strcpy(c_filename,optarg)==NULL)
- {
- printf("! Problem when copying string argument ! #Verif-2#\n" );
- return -1;
- }
- printf("%s\n",c_filename);
- break;
- case ':':
- printf("! Problem : option -%c requires an operand ! #Verif-3#\n", optopt);
- return -1;
- case '?':
- printf("! Problem : unrecognized option : -%c ! #Verif-4#\n",optopt);
- return -1;
-
- }
- }
- return 0;
- }
|
Message édité par julien_54 le 12-05-2006 à 10:56:20
|