美文网首页
终端命令行长选项getopt_long

终端命令行长选项getopt_long

作者: 刃之剑 | 来源:发表于2021-11-03 14:14 被阅读0次
    int getopt_long(int argc, 
                    char * const argv[],
                    const char *optstring,
                    const struct option *longopts, 
                    int *longindex);
    
    
    funcion:对长或短命令行参数进行解析 选项需要用短用'-'标记  长用'--'来标记
    argc:  传给main函数的参数个数
    argv[]:传给main函数的参数
    optstring:一个包含合法字符选项的字符串,若只解析长选项此处设置""串但不能设置NULL
       如: "ab:c::"
       (1) -a(--aaa) 选项不带参数
       (2) -b(--bbb)选项带参数 -b(-bbb) arg
       (3) -c(--ccc)选项可以带参数 也可以不带参数, 但选项和参数必须紧挨着 -c(-ccc)[arg]   
    longindex:若不为空,则存放longopts数组中匹配的元素下标,此值只有在optstings为""串,的时候才会返回值
    
    struct option{
       const char *name; //长选项的名字
       int         has_arg; //是否有参数 
                            //no_argument表示没有,
                            //required_argument需要参数--bbb arg 或者 --bbb=arg 
                            //optional_argument需要或不需要 使用方式为--ccc=arg
       int        *flag;//如果flag是null(通常情况),则函数会返回与该项option匹配的val值;
                        //如果flag不是NULL,则将val值赋予flag所指向的内存,并且返回值设置为0。                   
       int         val; //和长选项对应的短选项 
    };
    
    
    image.png image.png

    相关文章

      网友评论

          本文标题:终端命令行长选项getopt_long

          本文链接:https://www.haomeiwen.com/subject/gxxczltx.html