1.头文件
2.函数原型
int getopt_long(int argc, char * const argv[], const char *optstring, const struct option *longopts, int *longindex);
longindex参数如果没有设置为NULL,那么它就指向一个变量,这个变量会被赋值为寻找到的长选项在longopts中的索引值
3.全局符号
(1)
一般每个长选项都对应一个短选项,两者是等价的,option结构就是用来定义长选项对应哪个短选项,name表示长选项的名称,val表示对应的短选项,比如{ "no-proxy", no_argument, NULL, 'N' },说明--no-proxy对应与-N。
has_arg可以取值如下:
no_argument 0 选项没有参数
requierd_argument 1 选项需要参数
optional_argument 2 选项参数可选
比如我们可以定义如下选项:
(2)
假设使用下载工具axel:
axel -q --no-proxy --max-speed=150 http://blog.csdn.net/kenby/index.html
初始时,optind的值为1,指向第1个参数,每调用一次getopt_long,optind就向后移一个单位,指向第二个参数,这样optind总是指向下一个要处理的参数,optarg表示参数的值,比如但处理max-speed时,optarg的值为150
4.函数返回值
(1)若没有命令行参数,返回-1
(2)若碰到匹配的短选项, 返回对应的字符,比如碰到-N, 返回'N',若碰到匹配的长选项,返回在option数组里面定义的val,
比如碰到--no-proxy, 返回'N'。
(3)若碰到无法识别的短选项,返回-1, 若碰到无法识别的长选项,返回'?'
分享到:
相关推荐
getopt.h getopt.c getopt getopt_long 字符串 转 命令行 编译通过
win10 vs2019下的 getopt及getopt_long getopt/getopt_long函数是GNU C中的函数
windows 版本 getopt_long ,从GLIBC移植过来,解析命令行参数. 命令行参数可以分为两类,一类是短选项,一类是长选项,短选项在参数前加一杠"-",长选项在参数前连续加两杠"--",如下表(ls 命令参数)所示,其中-a,...
getopt.h getopt.c getopt_long 函数说明
函数原型int getopt_long(int argc,char * const argv[],const char *optstring,const struct option *longopts,int *longindex) 函数说明getopt被用来解析命令行选项参数。getopt_long支持长选项的命令行解析,函数...
getopt/getopt_long函数是GNU C中的函数,在linux编程中很常用到 可以在win10 vs2019下成功运行的Linux getopt及getopt_long
GNU libc提供了getopt和getopt_long用于解析命令行参数,使用方便,但是windows环境没有提供。故将GNU libc提供的源码稍加修改,整理出了windows下可用的getopt和getopt_long。
linux解析命令行选项getopt_long用法解读.docx
测试过,很好用~ getopt.c getopt.h为利用代码 其他两个为例子
看完这这几个代码,可以完全搞明白linux终端下解析命令行参数,经过整理以及代码注释。
资源包括了 c标准库 getopt 和 getopt_long 函数的使用案例。
在 Windows 平台下使用 Linux 的 getopt, getopt_long, getopt_long_only 函数。
getopt/getopt_long函数是GNU C中的函数,在linux编程中很常用到。这里就不介绍了。 windows下没有找到类似的函数,于是乎从glibc中找出来修改为windows可用的命令行参数。 vs亲写可用
NULL 博文链接:https://iintothewind.iteye.com/blog/1285683
getopt库,包含源码,32位库,64位库。getopt库主要用于QRencode库的生成。经过亲自测试使用,运行正常。
功能:C++命令行参数解析类...(控制台应用程序中使用)在 Windows 平台下使用 Linux 的 getopt, getopt_long, getopt_long_only 函数。压缩包内包含getopt.h,getopt.c和使用代码示例。在VS2010下编译通过,运行良好。
getopt是linux下的libc所规定的一个非常好用的命令行解析工具 ludvikjerabek将它移植到了Windows下(支持宽窄字节) 文件清单:getopt.h、getopt.c
缺少getopt.h头文件的,将文件下载后,放在你创建的工程下,并包含进你的代码里可以了。很好用! 适合C与C++,编译出错的话,可以关闭编译器重新编译!