如何在C中使用getopt打印输出帮助文本?

时间:2014-10-14 08:33:09

标签: c getopt

我有一个关于使用getopt with command的问题,其中包含以下代码:

void createFunction()
{
   printf("create function\n");
}

void printHelp()
{
   printf("print help info\n");
}

const struct option long_opts[] = {{"help", no_argument, NULL, HELP},
                                   {"c",    no_argument ,NULL, CREATE_OPTION},
                                   {NULL,   0,           NULL, 0}};

while((opt = getopt_long_only(argc, argv, "", long_opts, NULL)) != -1)
{
    switch(opt) {
        case HELP:
            printHelp();
            break;
        case CREATE_OPTION:
            createFunction();
            break;
        default:
            printf("type base --help for details\n");
    }
}

如何在没有任何参数或任何错误参数的类型命令时打印出帮助文本, 例如:只键入命令(在我的情况下是"base")来触发帮助文本的打印输出?或命令"base --"会触发帮助文本?有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

你可以用'?'传递无法识别的选项时触发的案例:

case '?':
    printf("Unknown option `-%c'.\n", optopt);
    printHelp();
    break;