C での getopt のエラー処理について質問があります。
#include <unistd.h>
#include <getopt.h>
void showFunction()
{
printf("show function\n");
}
void printHelp()
{
printf("print help info\n");
}
#define HELP 1
#define SHOW_OPTION 2
int main(int argc, char *argv[])
{
const struct option long_opts[] = {{"help", no_argument, NULL, HELP},
{"show", no_argument ,NULL, SHOW_OPTION},
{NULL, 0, NULL, 0}};
int opt;
while((opt = getopt_long_only(argc, argv, "", long_opts, NULL)) != -1)
{
switch(opt) {
case HELP:
printHelp();
break;
case SHOW_OPTION:
showFunction();
break;
case '?':
printHelp();
break;
default:
printf("type base --help for details\n");
}
}
return 0;
}
この部分はいくつかのエラーを処理します:
case '?':
printHelp();
break;
しかし、./base --
or ./base -
or ./base sdfs
or./base -- fsfs
と入力すると、無効な入力をすべて処理できないため、上記の入力を処理するにはどうすればよいですか? 誰でも助けることができますか?