getopt 函数功能的实现

最近写个ls命令功能的东西,不过本人比较菜鸟目前只完成 -l ,-a,-al. 目前正往-r 发展。
在写的时候,听到了欢哥说的getopt这函数。小小研究了下。发现这东西对与参数的处理是相当的方便。
例如:当你的函数有多种情况的参数时,你是不是还得先用strcmp函数对其进行判断下,而用getopt就方便多了。也许如果只是实现-l -a 以及组合的-al 时还不觉得有多麻烦。但是如果打算实现多种情况的时候就回非常非常的蛋疼了。例如如果打算实现 -l -a -r -s -i 这几种的参数时,不考虑组合的话只是5种,(也不过就5次的判断),当考虑到组合的时候两位组合就有10种,三位的话有10种,四位的话有5种,五位有1种组合。这几种情况实现下来要写多少的判断语句,而调用getopt函数的话就跳过个判断这一环节,直接列出各种情况下要实现的各种功能,下面来介绍一下这个函数。
其头文件在 #inlcude<unistd.h>
函数定义:   int getopt(int argc, char * const argv[], const char *optstring);
前两个参数就是int main(int argc, char **argv);中的这两个参数;第三个参数就是你要对其选项进行将argv里的东西对其进行传递的选项。
而关于getopt第三个形参optstring又有几种规定
1.单个字符:代表选项
2.单个字符后接一个冒号:表示该选项后必须跟一个参数。参数紧跟在选项后或者以空格隔开。
3.单个字符后跟两个冒号,表示该选项后必须跟一个参数。参数必须紧跟在选项后不能以空格隔开。
每当调用getopt函数时,其成功调用是选项。当命令参数中查找不到与其对应的选项时,
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值