一个使用getopt()函数获取命令行参数的例子
时间:2007-02-17 来源:PHP爱好者
#include
int
main (argc, argv)
int argc;
char **argv;
{
int c;
int digit_optind = 0;
while (1)
{
int this_option_optind = optind ? optind : 1;
int option_index = 0;
static struct option long_options[] =
{
{"add", 1, 0, 0},
{"append", 0, 0, 0},
{"delete", 1, 0, 0},
{"verbose", 0, 0, 0},
{"create", 1, 0, 'c'},
{"file", 1, 0, 0},
{0, 0, 0, 0}
};
c = getopt_long (argc, argv, "abc:d:012",
long_options, &option_index);
if (c == -1)
break;
switch (c)
{
case 0:
printf ("option %s", long_options[option_index].name);
if (optarg)
printf (" with arg %s", optarg);
printf (" ");
break;
case '0':
case '1':
case '2':
if (digit_optind != 0 && digit_optind != this_option_optind)
printf ("digits occur in two different argv-elements. ");
digit_optind = this_option_optind;
printf ("option %c ", c);
break;
case 'a':
printf ("option a ");
break;
case 'b':
printf ("option b ");
break;
case 'c':
printf ("option c with value `%s' ", optarg);
break;
case 'd':
printf ("option d with value `%s' ", optarg);
break;
case '?':
break;
default:
printf ("?? getopt returned character code 0%o ?? ", c);
}
}
if (optind <argc)
{
printf ("non-option ARGV-elements: ");
while (optind <argc)
printf ("%s ", argv[optind++]);
printf (" ");
}
exit (0);
}
php爱好者站 http://www.phpfans.net 网页特效|网页模板
int
main (argc, argv)
int argc;
char **argv;
{
int c;
int digit_optind = 0;
while (1)
{
int this_option_optind = optind ? optind : 1;
int option_index = 0;
static struct option long_options[] =
{
{"add", 1, 0, 0},
{"append", 0, 0, 0},
{"delete", 1, 0, 0},
{"verbose", 0, 0, 0},
{"create", 1, 0, 'c'},
{"file", 1, 0, 0},
{0, 0, 0, 0}
};
c = getopt_long (argc, argv, "abc:d:012",
long_options, &option_index);
if (c == -1)
break;
switch (c)
{
case 0:
printf ("option %s", long_options[option_index].name);
if (optarg)
printf (" with arg %s", optarg);
printf (" ");
break;
case '0':
case '1':
case '2':
if (digit_optind != 0 && digit_optind != this_option_optind)
printf ("digits occur in two different argv-elements. ");
digit_optind = this_option_optind;
printf ("option %c ", c);
break;
case 'a':
printf ("option a ");
break;
case 'b':
printf ("option b ");
break;
case 'c':
printf ("option c with value `%s' ", optarg);
break;
case 'd':
printf ("option d with value `%s' ", optarg);
break;
case '?':
break;
default:
printf ("?? getopt returned character code 0%o ?? ", c);
}
}
if (optind <argc)
{
printf ("non-option ARGV-elements: ");
while (optind <argc)
printf ("%s ", argv[optind++]);
printf (" ");
}
exit (0);
}
php爱好者站 http://www.phpfans.net 网页特效|网页模板
相关阅读 更多 +