getopt()函数
头文件
#include <unistd.h>
函数参数
int getopt(int argc, char* const argv[], const char* optstring);
extern char* optarg;
extern int optind,opterr,optopt;
- 参数argc,argv直接从main(int argc, char * argv[])中传递过来。argc指命令行参数的个数(程序文件名为第一个)。argv是一个指向各个字符串参数的指针数组。
- optstring是各选项字母组成的串,如果任意选项字母后面有一个冒号(:)则该选项要求需要参数。
- optarg是当前选项的参数串。
- optind是argv的当前索引。
- 当opterr不为零时,输出错误消息。
- optopt包含无效选项字符。
注意
- 如果optstring的第一个字符为冒号(:),则getopt函数不会输出任何错误消息。当“无效选项”时,getopt()返回‘?’;当”缺少选项参数“时,返回”:“,如果optstrin的第一个字符不是冒号,则也返回‘?’.
- 在调用getopt()之前,将opterr设为0,也可以让getopt不输出任何错误消息。