#include <unistd.h>
#include <getopt.h>
int getopt( int argc, char * const argv[], const char * optstring );
选项字符串为:“Of:h::p:”
- O表示是无参数选项
- f、p都为有参数选项
- h 后面可以跟参数或者不跟
此函数影响的全局变量有四个
extern char *optarg; //选项的参数指针
extern int optind, //下一次调用getopt的时,从optind存储的位置处重新开始检查选项。
extern int opterr, //当opterr=0时,getopt不向stderr输出错误信息。
extern int optopt; //当命令行选项字符不包括在optstring中或者选项缺少必要的参数时,该选项存储在optopt中,getopt返回'?’、
extern char *optarg; //选项的参数指针
extern int optind, //下一次调用getopt的时,从optind存储的位置处重新开始检查选项。
extern int opterr, //当opterr=0时,getopt不向stderr输出错误信息。
extern int optopt; //当命令行选项字符不包括在optstring中或者选项缺少必要的参数时,该选项存储在optopt中,getopt返回'?’、
int main(int argc, char** argv )
{
int ch,destConsole = 0;
int def = 0;
char* buf[4];
opterr = 0;
while ((ch = getopt(argc, argv, "Of:h::p:")) != -1) {
switch(ch) {
case 'O':
buf[0] = optarg;
break;
case 'f':
buf[1] = optarg;
break;
case 'h':
buf[2] = optarg;
break;
case 'p':
buf[3] = optarg;
break;
default:
def = 1;
}
}