gpt4 book ai didi

c - getopt_long 长选项有效但短选项无效

转载 作者:太空宇宙 更新时间:2023-11-04 06:36:17 24 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
getopt_long() — proper way to use it?

我在 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),为什么这?非常感谢。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com