在项目中遇到了getopt函数,于是在百度上查找,觉得理解的有些不舒服,所以自己写了代码验证一下自己的想法。
getopt函数的原型为int getopt(int argc,char const argv[ ],const char optstring);
argc和argv是我们的老朋友:main函数的两个参数。
optstring就是这个函数的重点,在下面的例子中a后面是一个冒号这个参数必须带上参数的如执行./aout a1才能打印出“呵呵呵”
参数b的后面是两个冒号它的可以直接用./aout b 就可以打印出 “哈哈哈”了
这样就容易理解了,在项目中根据不同的命令去运行的程序不一样。
#include <stdio.h>
#include <unistd.h>
int main(int argc,char *argv[])
{
int opt = 0;
opt = getopt(argc,argv,"a:b::c:");
switch(opt)
{
case 'a':
printf("呵呵呵\n");
break;
case 'b':
printf("哈哈哈\n");
break;
case 'c':
printf("嘻嘻嘻\n");
break;
}
return 0;
}