getopts函数简介
extern char * optarg;
extern int optind, // 初始化值为1,下一次调用getopt时,从optind存储的位置重新开始检查选项。
extern int opterr, // 初始化值为1,当opterr=0时,getopt不向stderr输出错误信息。
extern int optopt; // 当命令行选项字符不包括在optstring中或者选项缺少必要的参数时,
// 该选项存储在optopt中, getopt返回'?’。
int getopt( int argc, char * const argv[], const char * optstring);
optarg和optind是两个最重要的external 变量。optarg是指向参数的指针(当然这只针对有参数的选项);optind是argv[]数组的索引,众所周知,argv[0]是函数名称,所有参数从argv[1]开始,所以optind被初始化设置指为1。 每调用一次getopt()函数,返回一个选项,如果该选项有参数,则optarg指向该参数。 在命令行选项参数再也检查不到optstring中包含的选项时,返回-1。
1) 单个字符,表示选项,
2) 单个字符后接一个冒号”:”,表示该选项后必须跟一个参数值。参数紧跟在选项后或者以空格隔开。该参数的指针赋给optarg。
3) 单个字符后跟两个冒号”::”,表示该选项后必须跟一个参数。参数必须紧跟在选项后不能以空格隔开。该参数的指针赋给optarg。(这个特性是GNU的扩张)。
在这个命令行参数中,-a和-h就是选项元素,去掉'-',a,b,c就是选项。host是b的参数,keke是c的参数。但haha并不是d的参数,因为它们中间有空格隔开。所以上面的命令行调用会出错。
最后命令行参数的顺序是: -a -b host -ckeke -d ima haha
如果optstring中的字符串以'+'加号开头或者环境变量POSIXLY_CORRE被设置。那么一遇到不包含选项的命令行参数,getopt就会停止,返回-1。
getopts函数简介相关推荐
- SQL中 decode()函数简介
今天看别人的SQL时看这里面还有decode()函数,以前从来没接触到,上网查了一下,还挺好用的一个函数,写下来希望对朋友们有帮助哈! decode()函数简介: 主要作用:将查询结果翻译成其他值(即 ...
- 【Android 逆向】ptrace 函数 ( C 标准库 ptrace 函数简介 | ptrace 函数真实作用 )
文章目录 一.C 标准库 ptrace 函数简介 二.ptrace 函数真实作用 一.C 标准库 ptrace 函数简介 ptrace 函数 : 在 C 标准库 中有一个 ptrace 函数 , 该函 ...
- TypeScript基础入门 - 函数 - 简介
2019独角兽企业重金招聘Python工程师标准>>> 转载 TypeScript基础入门 - 函数 - 简介 项目实践仓库 https://github.com/durban89/ ...
- Python之pandas:pandas的get_dummies函数简介(将分类变量转为哑变量)及其使用方法之详细攻略
Python之pandas:pandas的get_dummies函数简介(将分类变量转为哑变量)及其使用方法之详细攻略 目录 pandas的get_dummies函数简介 pandas.get_dum ...
- Python之sklearn:LabelEncoder函数简介(编码与编码还原)、使用方法、具体案例之详细攻略
Python之sklearn:LabelEncoder函数简介(编码与编码还原).使用方法.具体案例之详细攻略 目录 LabelEncoder函数的简介(编码与编码还原) Methods LabelE ...
- Python:numpy库中的一些函数简介、使用方法之详细攻略
Python:numpy库中的一些函数简介.使用方法之详细攻略 目录 numpy库中的一些函数简介.使用方法 1.np.concatenate() 1.1.函数案例 1.2.函数用法 numpy库中的 ...
- php-calendar,PHPCalendar的函数简介
PHPCalendar的函数简介 PHPCalendar函数 日历扩展包含了简化不同日历格式间的转换的函数.下面是小编为大家整理的PHPCalendar的'函数简介,欢迎参考~ PHP Calenda ...
- C++ inline 函数简介
1.inline 函数简介 inline 函数由 inline 关键字定义,引入 inline 函数的主要原因是用它替代 C 中复杂易错不易维护的宏函数. 2.编译器对 inline 函数的处理办法 ...
- oracle sql文字列函数,Oracle 数据库SQL中 decode()函数简介
decode()函数简介: 主要作用:将查询结果翻译成其他值(即以其他形式表现出来,以下举例说明): 使用方法: Select decode(columnname,值1,翻译值1,值2,翻译值2,.. ...
最新文章
- 谷歌大神Jeff Dean点赞网红博士论文:改进分布式共识机制 | 技术头条
- 中国照明市场运营现状及发展前景分析报告2021年版
- 友盟小米收不到推送消息_App消息推送的到达率多少才是正常的?
- 你真的会玩SQL吗?Case也疯狂
- php json -gt;访问,【转】Php+ajax+jsonp解决ajax跨域问题
- 普罗米修斯监控java项目_java学到什么程度可以出去实习?
- caffe/build/tools下会生成一些工具
- [收藏学习]Openstack中Keystone及dashboard安装参考
- java视频格式转_java 实现 视频格式转换(转)
- 数据结构与算法应用(五):Minimum Subarray
- P3717 [AHOI2017初中组]cover——洛谷(差分)
- 通过PS的图层样式制作透明的玻璃字
- C++17 实现日期和时间相关编程
- js判断数字,如果出现全角数字,将其转换为半角
- css之calc,CSS之calc()
- 修复硬盘数据的时候用!
- 道指mt4代码_MT4产品代码
- OSG+TUIO osgRecipes之osgtuio
- 酷炫动态代码时钟 向你的女神展示吧
- RK3399平台开发系列讲解(SPI子系统)4.16、SPI子系统之spidev驱动分析
热门文章
- 2.4G模块NRF24L01调试经验
- 讲解NRF24L01P无线收发模块(转载)
- 如何用Java设计一个简单的窗口界面(初级二)
- java ext.dirs_关于-Djava.ext.dirs使用问题
- java基础知识之一:命名规则(包名、类名、变量名、方法名)
- 【Py】基于Python的身份证读卡器二开全记录
- 防止表单重复提交的问题
- 主键约束、主键自增约束、唯一约束、非空约束、外键约束
- org.apache.mina.core.RuntimeIoException: Failed to get the session 异常可能出现的原因
- codeforces B.Maximum Absurdity 解题报告