指定长命令行参数,不使用短格式getopt

时间:2014-03-17 20:40:11

标签: c getopt

假设我提供以下长选项参数结构:

static const struct option long_opts[] = {
    { "version",   no_argument,       NULL, 'v' },
    { "help",      no_argument,       NULL, 'h' },
    { NULL, 0, NULL, 0 } 
};

如何指定名为' - myoption'的附加选项,但没有缩写形式?所以我只能打电话:

./binary --myoption

我需要这个,因为我的信用完了。

1 个答案:

答案 0 :(得分:8)

如果您未将该选项放入shortopts,则不会使用该参数的短选项。 E.g:

#define MYOPT 1000

static struct option long_options[] = {
    {"myopt", no_argument, 0, MYOPT },
}

[...]

c = getopt_long(argc, argv, "", long_options, &option_index);
switch (c) {
case MYOPT:
    /* Do stuff. */
    break;
}