-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
인쇄), 이유가 무엇입니까? 많은 감사합니다.
const char *short_options ="hn:";
참고가 :
가 -n
인수를 받아들이는 의미
짧은 옵션은 무엇입니까? 'short_options'도 포함하십시오. –
코드 중 가장 관련있는 부분을 생략 한 재미 있습니다.) –
const char * const short_options = "hn"; – ale