Linux下的getopt()函数被设计用来处理命令行参数,使用时只要添加#include <unistd.h>即可。函数原型如下:
当给定了命令参数的数量、指向这些参数的数组和选项字符串后,getopt()将返回第一个选项,并设置一些全局变量,使用相同的参数再次调用该函数时,它将放回下一个选项,并设置相应的全局变量。如果不再有识别到的选项,将返回-1,此任务就完成了。
在case语句中,根据检测到的输入的选项设置进行相应的系统设置。
int getopt(int argc, char * const argv[], const char * optstring);
当给定了命令参数的数量、指向这些参数的数组和选项字符串后,getopt()将返回第一个选项,并设置一些全局变量,使用相同的参数再次调用该函数时,它将放回下一个选项,并设置相应的全局变量。如果不再有识别到的选项,将返回-1,此任务就完成了。
getopt设置的全局变量包括:
- optarg——指向当前选项参数(如果有)的指针;
- optind——再次调用getopt()时的下一个argv指针的索引;
- optopt——最后一个已知选项。
getopt的一般使用形式如下:
while(-1 !=(c = getopt(argc, argv, "aoei"))){
switch(c){
case 'a':...;break;
case 'o':...;break;
default:break;
}
}
在case语句中,根据检测到的输入的选项设置进行相应的系统设置。
更详细的介绍可参看:http://www.gnu.org/software/libc/manual/html_node/Using-Getopt.html