[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [linux] [devel] getopt()
On Sat, Jun 30, 2001 at 05:38:39PM +0200, CHARLIER Philippe wrote:
> Salut,
>
> Autre petit probleme de comprehension :
>
> Le prototype de la fonction "getopt()" est le suivant :
>
> int getopt(int argc, char *const *argv, const char *optstring);
>
> Mon probleme vient de l'utilisation des "const". Je suppose que le but est
> dans le troisieme argument de pointer vers une constante caractere.
>
> Par contre dans le deuxieme argument, je vois les choses comme suit :
>
> *argv est un pointeur "constant" vers un caractere.
> argv est un pointeur vers "un pointeur constant vers un caractere".
en fait, argc est le nombre d'arguments de ton prog,
argv les arguments (argv[0], argv[1], ...)
optstring est une chaine de caracteres avec les options que ton prog
peut accepter.
genre
int main(int argc, char *argv[])
{
char *liste_opt = "abc";
int nbe_opt;
opterr = 0; // n'affiche pas les messages d'erreurs automatiquement
while((nbe_opt = getopt(argc, argv, liste_opt)) != -1)
{
switch(nbe_opt)
{
case 'a':
fprintf(stdout, "option a\n");
break;
case 'b':
fprintf(stdout, "option b\n");
break;
case 'c':
fprintf(stdout, "option c\n");
break;
case '?':
fprintf(stderr, "option %c inconnue\n", optopt);
break;
}
}
if(optind != argc)
{
fprintf(stdout, "arguments restants : ");
while(optind != argc)
fprintf(stdout, "%s ", argv[optind++]);
}
return 0;
}
>
> Me trompe-je ?
>
> Philippe
>
> [ Soyez précis dans vos sujets svp afin de déterminer directement ]
> [ le type de demande... ]
> [ Pour vous (dés)inscrire, aller sur http://linuxbe.org/ml.php ]
> [ http://LinuxBe.org Contact: listmaster@linuxbe.org ]
---end quoted text---
--
<SomeLamer> what's the difference between chattr and chmod?
<SomeGuru> SomeLamer: man chattr > 1; man chmod > 2; diff -u 1 2 | less
-- Seen on #linux on irc
Benjamin Michotte <binny@baby-linux.net>
web : http://www.baby-linux.net
homepage : http://www.baby-linux.net/binny
icq uin : 99745024
[ Soyez précis dans vos sujets svp afin de déterminer directement ]
[ le type de demande... ]
[ Pour vous (dés)inscrire, aller sur http://linuxbe.org/ml.php ]
[ http://LinuxBe.org Contact: listmaster@linuxbe.org ]