命令行参数解析

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了命令行参数解析相关的知识,希望对你有一定的参考价值。

  当我们使用linux系统下很多的命令时,会发现每个命令基本上都有很多的参数选项,这些参数提供给我们很多方便的功能。我们在设计自己的程序时,通常页可以加入类似的功能,我们可以使用标准c库中的getopt函数来实现。

void version()
{
       printf("Version:  xx  1.0.\n");
       return;
}


void usage(char *pro)
{
        printf("Usage:%s  [Options]\n"
                  "Options:\n"
                  "   -h\t: help\n"
                  "   -v\t: version\n",pro          
        );
}

int main(int argc, char **argv)
{
        char ch;
        while((ch=getopt(argc, (char* const*)argv, "vh")) != -1)  
        {
                switch(ch){
                      case v:
                                 version();
                                 break;
                      case h:
                      case ?:
                      case default:
                                 usage(argv[0]);
                }
        }
}    

  其中,getopt的函数原型是:

int getopt(int argc, char *const argv[], const char *optstring);

  optstring时参数选项集合,其中的每个字符代表我们提供的参数选项,如果某个字符后面有冒号,代表它后面带有参数,每次调用getopt,函数将返回一个选项,如果返回-1表示选项返回完毕。如果我们输入了一个不支持的字符,或者缺少参数,getopt返回?。

以上是关于命令行参数解析的主要内容,如果未能解决你的问题,请参考以下文章

在 C++ 中解析命令行参数? [关闭]

在 C++ 中解析命令行参数? [关闭]

用Google的gflags优雅的解析命令行参数

用Google的gflags优雅的解析命令行参数

Python3-argparse模块-解析命令行参数

在python命令行中输入解析参数作为变量?