命令行解析函数:getopt_long

在linux下,可以执行man getopt_long 来查看getopt_long的使用,getopt_long 支持长选项和短选项(例如:长选项 --help 短选项-h)

头文件:

 #include <unistd.h>

函数声明:

int getopt_long(int argc, char * const argv[],  const char *optstring, const struct option *longopts, int *longindex);

argc:main函数中的第一个参数,命令行的参数个数,参数个数包含可执行文件。

argv[]: main函数中的第二个参数,命令行的具体参数,例如:./a.out 1 argv[0]就是”a.out:, argv[1] 就是"1"

longopts:结构 option中的指针。注意:数组的最后一个成员必须用0来填充,负责会出现段错误。

struct option {

                 //长选项的名称
               const char *name;

                //长选项是否有参数,如果该选项不接受参数,则为no_argument(或0);如果该选项需要参数,则为Required_argument(或1);或者optional_argument(或2),如果该选项为可选参数
               int         has_arg; 

                //指定如何返回长选项的结果。如果flag为NULL,则getopt_long()返回val 字符(例如,调用程序可以将val设置为等效的short选项)

                例如:{ "help", no_argument, NULL, 'h' },如果输入长选项是--help getopt_long 则返回字符'h';

               否则,getopt_long()返回0,标记指向一个变量,如果找到该选项,该变量将设置为val,但如果没有找到该选项,则保持不变

                例如:{ "help", no_argument, &opt, '1' },如果输入长选项--help getopt_long 则返回0,opt的值是'1'; 

               int        *flag;

                //根据falg的值来定,flag为空,val则返回,flag不为空,val值设置到flag中。

               int         val;
           };

//如果longindex不是NULL,它指向一个变量,该变

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值