-1
可能重複:
getopt_long() — proper way to use it?getopt_long長選項工作,但也不短選項
我在我的C程序getopt_long掙扎。代碼:
const struct option long_options[] = {
{ "help", 0, NULL, 'h' },
{ "num", 1, NULL, 'n' },
{ NULL, 0, NULL, 0 }
};
do {
next_option = getopt_long(argc, argv, short_options,
long_options, NULL);
switch(next_option) {
case 'h':
print_usage(stdout, 0);
case 'n':
printf("num %s\n", optarg);
break;
case '?':
print_usage(stderr, 1);
break;
default:
abort();
}
} while(next_option != -1);
這工作:
./a.out --num 3
num 3
此作品(爲什麼?):
./a.out --n 3
num 3
這不:
./a.out -n 3
num (null)
這麼久選項的作用,總之,兩個' - '(爲什麼?)和短期選擇不會工作(printf
打印NULL
),這是爲什麼?非常感謝。
什麼_are_短選項?請包括'short_options'。 –
有趣的是,你省略了最相關的一段代碼;) –
const char * const short_options =「hn」; – ale