c - 如何使用 optparse-c 调用帮助功能

标签 c argv

我正在尝试使用 optparse-c library .这个库在我看来很有用。我发现没有 很清楚如何在不调用 prog -h 的情况下调用帮助。 如果我从函数签名 static void printopts(FILE *f) 中删除关键字 static ,我就可以做到 optparse.c,那么我可以这样做:

int main(int argc, char **argv)
{
    int i;

    opt_basename(argv[0], '/');
    if (opt_parse("usage: %s [options] arg1 arg2", options, argv) != 2) {
        printopts(stderr);

        exit(EXIT_FAILURE);
    }
    ...

但是,在我看来,这个库的作者似乎对如何调用帮助功能有一些其他的想法。如果有人能帮我解决这个问题,我会很高兴。

我也试过这个:

char h[] = "-h";
opt_basename(argv[0], '/');
if (opt_parse("usage: %s [options] arg1 arg2", options, argv) != 2) {
    argc++;
    strcpy(argv[1], h);
    opt_parse("usage: %s [options] arg1 arg2", options, argv);

    exit(EXIT_FAILURE);
}

最佳答案

好吧,在深入研究源代码之后,我发现了一个不简单的(因为我还在学习 C)解决方案:

if (opt_parse("usage: %s [options] arg1 arg2", options, argv) != 2) {

        opt_help(0, (void *)0);

        exit(EXIT_FAILURE);
    }

关于c - 如何使用 optparse-c 调用帮助功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20869361/

相关文章:

c - 如何在c中制作字符串参数数组

c - GCC、函数和指针参数、警告行为

c - 使用递归函数,证明数组正在增长

c - 如何在函数中使用指针?

c - 将 argv[0] 设置为比当前分配的值更长的值

c - 请求一个简单的 C 代码示例,展示如何使用通用或无类型(通过 void *)数组

Python 的 argv 和 bash?

c - argv[argc] 是否等于 NULL 指针

perl - 如何告诉 Perl 函数从特殊的 ARGV 句柄中读取文件?

c - 如何让命令窗口中的文本跳到下一行? C语言编程?