您的位置:首页 > 运维架构

getopt,

2015-06-22 10:12 232 查看
函数说明 getopt()用来分析命令行参数。参数argc和argv分别代表参数个数和内容,跟main()函数的命令行参数是一样的。

参数 optstring为选项字符串,
告知 getopt()可以处理哪个选项以及哪个选项需要参数,如果选项字符串里的字母后接着冒号“:”,则表示还有相关的参数。

如:iError = getopt(argc,
argv, "ls:f:h:d:"); 中支持选项l,但后面不跟参数,使用时直接为-l ;选项s,冒号表示后面跟相关的参数,全域变量optarg 即会指向此额外参数,使用时为 -s 参数值 ;选项h和选项d一样后跟相关参数

再如:

optstring中的指定的内容的意义(例如getopt(argc, argv, "ab:c:de::");)

1.单个字符,表示选项,(如上例中的abcde各为一个选项)

2.单个字符后接一个冒号:表示该选项后必须跟一个参数。参数紧跟在选项后或者以空格隔开。该参数的指针赋给optarg。(如上例中的b:c:)

3 单个字符后跟两个冒号,表示该选项后可以跟一个参数,也可以不跟。如果跟一个参数,参数必须紧跟在选项后不能以空格隔开。该参数的指针赋给optarg。(如上例中的e::,如果没有跟参数,则optarg = NULL)

返回值

  getopt()每次调用会逐次返回命令行传入的参数。
  当没有参数的最后的一次调用时,getopt()将返回-1。
  当解析到一个不在optstring里面的参数,或者一个必选值参数不带值时,返回'?'。
  当optstring是以':'开头时,缺值参数的情况下会返回':',而不是'?' 。

这个函数的头文件为#include <unistd.h>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: