函数原型:
#include<unistd.h>
int getopt(int argc,char *const argv[],const char *optstring);
extern char *optarg;
extern int optind,opterr,optopt;
optstring为一个字符列表,每个字符代表一个单字符选项
全局变量:
optarg:存数据
optind
opterr:控制是否向STDERR打印错误。若值为0,则关闭打印错误信息
optopt:存储出错的option(如缺参数),或者不认识的option
函数说明:
getopt()用来分析命令行参数。参数argc和argv是由main()传递的参数个数和内容。参数optstring 则代表欲处理的选项字符串。此函数会返回在argv 中下一个的选项字母,此字母会对应参数optstring 中的字母。如果选项字符串里的字母后接着冒号“:”,则表示还有相关的参数,全域变量optarg 即会指向此额外参数。如果getopt()找不到符合的参数则会印出错信息,并将全域变量optopt设为“?”字符,如果不希望getopt()印出错信息,则只要将全域变量opterr设为0即可。
短参数定义:
getopt()使用opstring所指的字符串作为短参数列表,像“krf:d::"就是一个短参数列表,短参数的定义是一个‘-’后面跟一个字母或数字(例如命令ls -a -l getopt()函数接受前面有"-"的参数选项