Linux中getopt详解

Linux中getopt详解

getopt函数用来解析命令行参数的,以‘-’或‘--’开头的参数为选项参数,选项参数除去‘-’或‘--’的剩下的是选项字符如果getopt函数被重复调用,则它将会依次返回每个选项元素中的选项字符。

使用getopt需使用以下头文件:

  #include<unistd.h>

  #include<getopt.h>

 

有几个全局变量与getopt函数解析参数有关:

 

optind: int型, 指示下一个要解析的参数位置,初始时为1.

 

optarg: char *, 必须接参数的选项元素的参数, 如上面的-nxzz, optarg 就指向"xzz"字符串.

 

opterr: int 型, 设为0将不打印错误信息.

 

函数原型为:  

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

参数说明:

  前两个参数与main函数参数相同,argc保存参数的个数,argv[]保存参数数组,第三个参数optstring是我们自己定义的选项字符组成的字符串,如“abc”,表示该命令有三个选项参数-a, -b, -c,选项字符后面如果有一个冒号说明该选项元素一定有一个参数,且该参数保存在optarg中,如“n:t”表示选项元素n后面要接参数,选项元素t后不接参数,如-n xxz -t或-nxzz t,有两个冒号说明该选项可接可选参数,但可选参数不保存在optarg中

返回值:

  如果当前处理的参数是选项参数,且该选项字符在optstring字符串中,即为你定义的选项,则返回该选项字符,如果该选项字符不是你定义的,那么返回字符‘?’,并更新全局变量optind,指向argc数组中的下一个参数。如果当前处理的参数不是选项参数,则optind偏移向下一个参数,直到找到第一个选项元素为止,然后再按之前描述的操作,如果找不到选项元素, 说明解析结束, 则返回-1.

 

转载于:https://www.cnblogs.com/chenyHAHA/p/5987607.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值