一个使用getopt()函数获取命令行参数的例子

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

#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);

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航