Linux下的getopt()函数

来源:互联网 发布:netty 监听多个端口 编辑:程序博客网 时间:2024/05/24 00:29

Linux下的getopt()函数被设计用来处理命令行参数,使用时只要添加#include <unistd.h>即可。函数原型如下:

int getopt(int argc, char * const argv[], const char * optstring);

当给定了命令参数的数量、指向这些参数的数组和选项字符串后,getopt()将返回第一个选项,并设置一些全局变量,使用相同的参数再次调用该函数时,它将放回下一个选项,并设置相应的全局变量。如果不再有识别到的选项,将返回-1,此任务就完成了。

getopt设置的全局变量包括:

  1. optarg——指向当前选项参数(如果有)的指针;
  2. optind——再次调用getopt()时的下一个argv指针的索引;
  3. 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