我有一个程序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");
}
Run Code Online (Sandbox Code Playgroud)
当我将正确的命令行参数传递给程序时,它运行良好。但是当错误的参数传递给程序时,它会打印出像这样烦人和多余的词。
例如,我将错误的参数“q”传递给程序
$ ./program -q
./program: invalid option -- 'q'
Usage: -h -t
Run Code Online (Sandbox Code Playgroud)
当有错误的参数时,我只希望它运行我的函数help()而不打印任何单词。
./program: invalid …Run Code Online (Sandbox Code Playgroud)