当解析所有命令行参数或在命令行中迂到意外错误时,getopt_long()将返回 -1。getopt_long()不会返回任何errno值。 如果getopt_long()检测到缺少自变量或选项字符串不在longopts中,那么它会向stderr写入一条错误消息,描述错误中的选项字符或字符串以及调用程序。
3. 当 optstring 字符串使用字符 '+' 开始时, getopt 会在遇到第一个非合法参数项时结束.而当 optstring 字符串使用 '-' 开始时,所有的非参数项的 argv 数组中的条目均被视为字符值为 1 的参数项的参数,也就是被视为 -1 test 形式的调用,getopt 返回值为 1,而 optarg 指向字符串 test. 4. 当 geto...
' 并赋值给 optopt, 同时将外部变量 optopt 设置为这个缺失的 选项字符; 如果: 选项参数 缺失, 如果 optstring 的第一个字符是冒号 ':' 则返回冒号 ‘:’ 给 opt, 否则返回 '?' 给opt; 最后,当getopt_long()将命令行所有参数全部解析完成后,返回-1,或者一开始没有选项参数,也会返回-1,或者遇到参数不...
equired_argument (1) 表明这个长参数必须带参数(--name Bob) optional_argument(2)表明这个长参数后面带的参数是可选的 flag 当这个指针为空的时候,函数直接将 val 的数值从 getopt_long 的返回值返回出去。 当指针非空时,会把 val 的值存储到 flag 指向的位置,然后返回 0。 val :用于指定函数找到...
getopt_long可以解析长选项和短选项:长选项以--开头,后面可跟多个字母,短选项以-开头 getopt_long_only可以解析长选项和短选项:长选项以-或者--开头,后面可跟多个字母,短选项以-开头 执行时,可以是./test --opt xxx或者./test --opt=xxx getopt
has_arg的值有三种情况。 #define no_argument 0 #define required_argument 1 #define optional_argument 2 ? longind : 用于返回长选项在longopts结构体数组中的索引值,用于调试。一般置为NULL。 flag和val两个值相互依赖,主要分两种情况。 (1) flag为NULL时,val值用于确定该长选项,所以需要长选项指定唯一的...
longind:用于返回长选项在longopts结构体数组中的索引值,用于调试。一般置为NULL 下面介绍struct option 代码如下: [cpp] struct option { const char *name;//长选项名 int has_arg;//是否需要参数 int *flag; int val; }; name:长选项名字 has_arg:是否需要参数。值有三种情况 ...
最后,当getopt_long()将命令行所有参数全部解析完成后,返回-1。注意 required_argument(或者是1)时,参数输入格式为:--参数 值 或者 --参数=值。optional_argument(或者是2)时,参数输入格式只能为:--参数=值。范例 #include #include char *l_opt_arg;char* const short_options = "nbl:";struct ...
7、longindex如果非NULL,则是返回识别到struct option数组中元素的位置指针; 1. 2. 3. 4. 5. 6. 7. 8. 9. struct option的说明: /* name: 长选项名 has_arg: 是否带参数或可选参数,这个值在getopt.h中有宏定义,如下: # define no_argument 0 ...