#include <unistd.h>
int getopt(int argc, char * const argv[], const char *optstring);
extern char *optarg;
extern int optind, opterr, optopt;

​getopt()​​ 所设置的全局变量包括:

  • ​char *optarg​​——当前选项参数字串(如果有)。
  • ​int optind​​——argv的当前索引值。当getopt()在while循环中使用时,循环结束后,剩下的字串视为操作数,在argv[optind]至argv[argc-1]中可以找到。
  • int opterr——这个变量非零时,getopt()函数为“无效选项”和“缺少参数选项,并输出其错误信息。
  • ​int optopt​​——当发现无效选项字符之时,getopt()函数或返回'?'字符,或返回':'字符,并且optopt包含了所发现的无效选项字符。


#include <stdio.h>
extern char *optarg;
int main(int argc,char* argv[])
{
char c;

while ((c = getopt (argc, argv, "D:aA:c:g:hns:t:v:")) != EOF)
{

printf("%c %s\n", c,optarg);
}

return 2;
}