getopt参数解析
getopt()用来分析命令行参数。
1.短形参解析getopt
#include
int getopt(int argc, char * const argv[],const char *optstring);
extern char *optarg;
extern int optind, opterr, optopt;
函数功能:短形参解析
形 参:argc、argv main函数参数
optstring 短形参格式。例:a: b::cv
一个’:’表示必带参数
两个’::’表示可带参数,带参数时第一参数必须和b之间不能有空格
没有’:’表示可选参数
返回值:解析成功返回短形参
解析失败返回?
解析完成返回-1
全局变量:
optarg – 保存短形参后面的第一个参数(必带参数和可带参数才能得到)
optind – 再次调用 getopt() 时的下一个 argv 指针的索引
opterr – 错误值信息
optopt – 参数解析失败是返回短形参值,成功则为0
#include
#include
int main(int argc,char *argv[])
{
int opt;
int cnt;
while(1)
{
opt=getopt(argc,argv,"a:b::vh");
if(opt==-1)break;
cnt=optind;
switch(opt)
{
case 'a':
printf("参数:%c\n",opt);
printf("\t内容:%s\n",optarg);
while(cnt
2.长形参解析getopt_long
2.长形参解析getopt_long
#include
int getopt_long(int argc, char * const argv[],const char *optstring,const struct option *longopts, int *longindex);
函数功能:长形参解析
形 参:argc、argv main函数参数
optstring 短形参格式。例:a: b::cv
一个’:’表示必带参数
两个’::’表示可带参数,带参数时第一参数必须和b之间不能有空格
没有’:’表示可选参数
longopts 长形参结构体
struct option {
const char *name; //长形参名
int has_arg; //参数选择标志
int *flag; //一般填NULL
int val; //长形参解析成功返回标志信息
};
has_arg:
#define no_argument 0 //不需要参数
#define required_argument 1 //必须指定参数
#define optional_argument 2 //参数可选
Longindex:解析成成功返回的长形参结构体数组下标
返回值:解析成功返回短形参
解析失败返回?
解析完成返回-1
getopt_long完全兼容getopt短形参解析功能;在使用getopt_long实现长形参解析时,初始化长形参longopts时最后一个结构体成员一定要设置为全为0,否则会段错误。
#include
#include
struct option loqngopts[]=
{
{"version",no_argument,NULL,'v'},//不带参数
{"help",no_argument,NULL,'h'},//不带参数
{"prefix=",required_argument,NULL,'p'},//必带参数
{"a123",optional_argument,NULL,'a'},//可选参数
{0,0,0,0}, //最后一个成员必须全为0
};
int main(int argc,char *argv[])
{
int index;
int opt;
int cnt;
while(1)
{
opt=getopt_long(argc,argv,"a:b::vh",loqngopts,&index);
if(opt==-1)break;//解析完成
cnt=optind;
switch(opt)
{
case 'a':
printf("index=%d\n",index);
if(index<=sizeof(loqngopts)/sizeof(struct option))//长形参
{
printf("长形参:%s\n",loqngopts[index].name);
if(optarg!=NULL)
{
printf("\t内容:%s\n",optarg);
}
while(cnt)>
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
参数
+关注
关注
11文章
1838浏览量
32259 -
getopt
+关注
关注
0文章
4浏览量
1903
发布评论请先 登录
相关推荐
《运算放大器参数解析与LTspice应用仿真》+学习心得3第二章之电气参数
非常感谢作者郑荟民!非常感谢电子发烧友论坛!非常感谢人民邮电出版社!非常感谢中国工信出版集团!非常感谢给的这一次试读机会!
《运算放大器参数解析与LTspice应用仿真》作者简介:郑荟民,副高
发表于 10-05 21:33
学会在Linux下使用getopt函数来获取传入的参数
在linux下有一个函数叫getopt就可以写成-r -l -i 的形式,下面是一个使用openssl通信的程序,需要4个参数服务器ip -i、服务器端口-p、证书地址-c、私匙地址-s代码如下,重点看while循环
发表于 05-06 17:17
•1172次阅读
Linux系统中getopt_long及其使用
, 0, NULL, 0} };调用时需要把main的两个参数argc和argv以及上述两个数据结构传给getopt_long。每次调用getopt_long,它会
发表于 04-02 14:33
•1782次阅读
MXNet源码解读笔记一 ---- 如何解析参数文件
本文主要内容是解读MXNet是加载模型参数文件并解析得到NDArray所涉及到的代码,希望读者读完本文能对MXNet参数文件的格式有清晰的了解,...
发表于 02-07 11:12
•0次下载
评论