【发布时间】:2017-06-08 12:16:28
【问题描述】:
我有一个程序使用getopt_get() 来解析命令行参数。
我的代码是这样的:
int opt;
int optionIndex;
static struct option longOptions[] = {
{"help", no_argument, NULL, 'h'},
{"test", no_argument, NULL, 't'},
{0, 0, 0, 0}
};
while ((opt = getopt_long(argc, argv, "ht", longOptions, &optionIndex)) != -1) {
switch (opt) {
case 'h':
help();
return 0;
break;
case 't':
init();
test();
return 0;
break;
case '?':
help();
return 1;
break;
default:
printf("default.\n");
}
当我将正确的命令行参数传递给程序时,它运行良好。 但是当错误的参数传递给程序时,它会打印出这样烦人的多余的词。
例如,我将错误的参数“q”传递给程序
$ ./program -q
./program: invalid option -- 'q'
Usage: -h -t
当参数错误时,我只希望它运行我的函数help() 而不打印任何单词。
./program: invalid option -- 'q'
我怎样才能阻止getopt_long 打印这个烦人的单词而什么都不打印?
【问题讨论】:
标签: c linux glibc getopt getopt-long