getopt和getopt_long函数记录
来源:互联网 发布:记录键盘输入的软件 编辑:程序博客网 时间:2024/05/17 02:24
首先,对getopt函数进行整理:
1. 头文件: #include <unistd.h>
2. 函数原型及相关声明:
i> 原型: int getopt (int argc, char *argv[], const char * optstring);
ii> 声明: extern char optarg;
extern int optind, opterr, optopt;
3. 说明:
getopt 函数将传递给程序的main函数的argc和argv作为参数,同时接受一个选项指定符字符串optstring,该字符串告诉getopt哪些选项可用,以及它们是否有关联值。optstring是一个字符列表,每个字符代表一个单字符选项。如果一个字符后面紧跟一个冒号(:),则表明该选项有一个关联值作为下一个参数。例如:
getopt(argc, agrv, "if:lr"),它允许几个简单的选项:-i, -l,-r和-f,其中-f选项后要紧跟一个文件名参数。
注: 使用相同的参数,但以不同的顺序来调用命令将改变程序的行为。
getopt的返回值是argv数组中的下一个选项字符,循环调用getopt就可以依此得到每个选项。getopt有如下行为:
i> 如果选项有一个关联值,则外部变量optarg指向这个值;
ii> 如果选项处理完毕,getopt返回-1,特殊参数--将使getopt停止扫描选项;
iii> 如果遇到一个无法识别的选项,getopt返回一个问号(?),并把它保存到外部变量optopt中;
iv> 如果一个选项要求有一个关联值,但是用户并未提供这个值,getopt通常将返回一个问号(?)。如果我们将选项字符串的第一个字符设置为冒号(:),那么getopt将在用户未提供值的情况下返回冒号(:)而不是问号(?)。
注:因此为了区分getopt返回问号时意思为“遇到一个无法识别的选项” 和 “需要用户输入一个关联值”,可以将optstring均已冒号(:)开始。这样则在返回问号时即为未识别的选项,返回冒号时即为需要用户输入关联值。
外部变量optind被舍子为下一个待处理参数的索引。getopt利用它来记录自己的进度。
其次,再对getopt_long函数进行整理。总的来说,getopt_long给人的感觉就像是64位操作系统于32位操作系统,有囊括并带有扩充。
1. 头文件: #include <getopt.h>
2. 函数原型:
- getopt和getopt_long函数记录
- getopt和getopt_long函数
- getopt和getopt_long函数
- getopt和getopt_long函数
- getopt和getopt_long函数
- getopt和getopt_long函数
- getopt和getopt_long函数
- getopt和getopt_long函数
- getopt和getopt_long函数
- getopt和getopt_long函数
- getopt和getopt_long函数
- getopt和getopt_long函数
- getopt和getopt_long函数
- getopt和getopt_long函数
- getopt和getopt_long函数
- getopt和getopt_long函数
- getopt和getopt_long函数
- getopt和getopt_long函数
- 在 EBS Form 查找界面点 "Find" 之后都发生了什么?
- 黑马程序员——object-c之类的声明和实现
- python7
- android示例之AppWidget(2)
- hibernate缓存
- getopt和getopt_long函数记录
- 随机生成N个1至100的整数,N由用户给定,程序输出出现次数最多的整数及其出现次数。如果有多个并列最多,需要输出全部最多的整数。
- LFS
- new 和malloc 之间的差别
- C++关于文件输入输出的简单操作
- cocos2d jsb 打包 Android APK
- HDU 2159 FATE (完全背包+有限取次)(二重费用背包)
- jdbc随堂笔记
- Iptables防火墙配置