Linux解析命令行选项getopt_long用法解释
Linux的命令行选项getopt_long用法解析
在程序中,使用命令行选项是不可避免的,你可以自己选择命令行选项,但是有现成的,为什么要重建轮子。
以下是使用getopt_long解析命令行选项介绍。
程序的主要用途:
短选项长度选项是否需要参数注释
-版本无查询版本号
N - name(用户名)指定用户
调试是否已调试
1。函数的来源
复制代码代码如下所示:
{ CPP }
#包括 / / getopt_long()的头文件的位置
国际getopt_long ___argc(int,char * const * ___argv,
const char * __shortopts,
const int * * __longopts结构的选择,__longind);
国际getopt_long_only ___argc(int,char * const * ___argv,
const char * __shortopts,
const int * * __longopts结构的选择,__longind);
2。介绍参数
argc argv:直接从主函数传递
shortopts:短选项字符串。例如,,N:V,我们需要指出的是,短选项字符串不需要' ';-;当选择需要传递的参数,它补充说:对,短的选项。
的longopts:struct选项数组用于存储长选项参数。
Longind:它是用来返回在调试longopts结构阵列长选项的索引值通常设置为null。
下面是结构选项的介绍
复制代码代码如下所示:
{ CPP }
结构的选择
{
常量名称*;长选项名
国际has_arg; / /是否需要参数
标志;
Int Val;
};
名称:多头期权的名称
has_arg:是否需要参数值。有三例
复制代码代码如下所示:
{ CPP }
#定义no_argument 0 / /不需要参数
定义required_argument 1 / / #必须指定参数
#定义optional_argument 2 / /可选参数
国旗和Val
国旗和瓦尔是相互依存的,主要有两种情况:
(1),标志是NULL,并且使用瓦尔值来决定长选项,因此您需要为长选项指定一个唯一的值。
(2)标志不是空的,然后将值存储在标志所指示的存储空间中,用于标识长选项。
三.返回值
短的选项是在程序中使用的,和短的选项字符(比如‘n)返回,当参数是必需的,参数是返回之前存储在OPTARG不会。
长选项中使用的程序,并返回值是当国旗是空的旗帜和价值确定,Val返回值。所以不同的处理是基于价值的价值,这也表明值必须是唯一的。当val的值等于短的期权价值,你可以使用短选项解析函数来分析长选项。当国旗不为null,val值存储在由国旗的存储空间,并getopt_long返回0。
未定义的或长或短的选项,getopt_long回报
经过分析,getopt_long返回1
4。一个例子
理论要与现实相结合
复制代码代码如下所示:
{ CPP }
#包括
#包括
#包括 / / getopt_long()的头文件的位置
int main(int argc、argv char *)
{
const char* optstring =N V;
int c,Deb,指数;
结构的选择选择{ } = { { 用户名
{ 版本
{调试
0,0,0,0 } { };
而((C = getopt_long(argc、argv,optstring、选择、指标))!= 1)
{
开关(c)
{
case'n: / / N或用户名指定用户名
printf(用户名%s
打破;
case'v: / / V或版本,输出版本号
printf(版本0.0.1 ;
打破;
案例0:标志不是空的
printf(%d 调试
打破;
情况:未定义选项
printf(;
打破;
违约:
printf(C为D
打破;
}
}
返回0;
}
运行截图:
解释:getopt_long_only,这个功能是getopt_long相同,但它可以使用' ',-,其次是长和选定的项目名称,如:/主用户名杰基。