<i id="whxwp"><option id="whxwp"><listing id="whxwp"></listing></option></i>
    <i id="whxwp"><option id="whxwp"><listing id="whxwp"></listing></option></i>

    <i id="whxwp"><option id="whxwp"></option></i>

    <delect id="whxwp"><rp id="whxwp"><big id="whxwp"></big></rp></delect>

      <i id="whxwp"><option id="whxwp"><listing id="whxwp"></listing></option></i>

      <i id="whxwp"><option id="whxwp"><listing id="whxwp"></listing></option></i>

        [linux]getopt_long

        linux下的命令行参数函数的使用

        struct option 成员的解析

        //{选项名,是否需要参数,如果是NULL,则getopt_long返回val(通常设定为short option)
            //如果非NULL,则getopt_long返回0,flag 指向val 
            //{"get",no_argument,&method,METHOD_GET}, ==》 匹配到get选项时,getopt_long返回0,method=METHOD_GET
            //}

        getopt_long 参数的解析

        //912Vfr ?h==> -9 -1 -2 -V -f -r
            //t: p: c:==>-t 100  选项后面要带一个参数
            //如果是字母后面带两个冒号表示选项后面的参数可有可无
        #include <stdio.h>
        #include <stdlib.h>
        #include <unistd.h>
        #include <getopt.h>
        static void usage(void)
        {
            fprintf(stderr,
                    "webbench [option]... URL\n"
                    "  -f|--force               Don't wait for reply from server.\n"
                    "  -r|--reload              Send reload request - Pragma: no-cache.\n"
                    "  -t|--time <sec>          Run benchmark for <sec> seconds. Default 30.\n"
                    "  -p|--proxy <server:port> Use proxy server for request.\n"
                    "  -c|--clients <n>         Run <n> HTTP clients at once. Default one.\n"
                    "  -9|--http09              Use HTTP/0.9 style requests.\n"
                    "  -1|--http10              Use HTTP/1.0 protocol.\n"
                    "  -2|--http11              Use HTTP/1.1 protocol.\n"
                    "  --get                    Use GET request method.\n"
                    "  --head                   Use HEAD request method.\n"
                    "  --options                Use OPTIONS request method.\n"
                    "  --trace                  Use TRACE request method.\n"
                    "  -?|-h|--help             This information.\n"
                    "  -V|--version             Display program version.\n"
                   );
        }
        /* values */
        volatile int timerexpired=0;
        int speed=0;
        int failed=0;
        int bytes=0;
        
        /* globals */
        int http10=1; /* 0 - http/0.9, 1 - http/1.0, 2 - http/1.1 */
        /* Allow: GET, HEAD, OPTIONS, TRACE */
        #define METHOD_GET 0
        #define METHOD_HEAD 1
        #define METHOD_OPTIONS 2
        #define METHOD_TRACE 3
        #define PROGRAM_VERSION "1.5"
        int method=METHOD_GET;
        int clients=1;
        int force=0;
        int force_reload=0;
        int proxyport=80;
        char *proxyhost=NULL;
        int benchtime=30;
        static const struct option long_options[]=
        {
            {"force",no_argument,&force,1},
            {"reload",no_argument,&force_reload,1},
            {"time",required_argument,NULL,'t'},
            {"help",no_argument,NULL,'?'},
            {"http09",no_argument,NULL,'9'},
            {"http10",no_argument,NULL,'1'},
            {"http11",no_argument,NULL,'2'},
            {"get",no_argument,&method,METHOD_GET},
            {"head",no_argument,&method,METHOD_HEAD},
            {"options",no_argument,&method,METHOD_OPTIONS},
            {"trace",no_argument,&method,METHOD_TRACE},
            {"version",no_argument,NULL,'V'},
            {"proxy",required_argument,NULL,'p'},
            {"clients",required_argument,NULL,'c'},
            {NULL,0,NULL,0}
        };
        int main(int argc,char *argv[])
        {
        
        
            if(argc==1)//没有带参数
            {
                usage();
                return 2;
            } 
            int opt;
            int options_index=0;
           
            while((opt=getopt_long(argc,argv,"912Vfrt:p:c:?h",long_options,&options_index))!=EOF )
            {
                switch(opt)
                {
                    case  0 : break;
                    case 'f': printf("f\n");break;
                    case 'r': printf("r\n");break; 
                    case '9': printf("9\n");break;
                    case '1': printf("1\n");break;
                    case '2': printf("2\n");break;
                    case 'V': printf("V\n");exit(0);
                    case 't': printf("t\n");break;       
                    case 'p': 
                    printf("p\n");break;
                    case ':':
                    case 'h':
                    case '?': usage();return 2;break;
                    case 'c': printf("c\n");break;
                }
            }
        
        
            return 0;
        }

        分享图片

        分享图片

        相关文章
        相关标签/搜索
        本站公众号
           欢迎关注本站公众号,获取更多程序园信息
        开发小院
        三期內必开一肖 高密市| 广宗县| 宜兰市| 桂平市| SHOW| 梁山县| 若尔盖县| 手游| 正定县| 梁山县| 安远县| 顺昌县| 武平县| 海林市| 西安市| 罗定市| 锡林郭勒盟| 海林市| 新乡县| 青铜峡市| 枞阳县| 富顺县| 子长县| 大厂| 吴桥县| 和龙市| 怀柔区| 虎林市| 新竹县| 玉溪市| 厦门市| 巴彦县| 黄陵县| 安泽县| 盐源县| 乐平市| 威远县| 武功县| 黑山县| 泗阳县| 济南市| 同江市| 收藏| 敦煌市| 资阳市| 威海市| 壶关县| 西安市| 阜新市| 贺州市| 博野县| 巴南区| 石林| 乡宁县| 微博| 塘沽区| 平山县| 大姚县| 湾仔区| 白水县| 宝兴县| 梁山县| 赤城县| 怀化市| 财经| 鸡东县| 隆回县| 长顺县| 舟曲县| 嘉定区| 桓台县| 长汀县| 五常市| 建湖县| 阜新| 洛扎县| 大足县| 五河县| 刚察县| 尚志市| 噶尔县| 贺兰县| 林西县| 当阳市| 延边| 泾川县| 报价| 康乐县| 琼中| 喀喇| 西和县| 郴州市| 方正县| 托克逊县| 韶山市| 铁岭市| 汕尾市| 汤原县| 永州市| 西和县| 澳门| 额尔古纳市| 裕民县| 布尔津县| 密云县| 胶南市| 古交市| 定日县| 云安县| 漠河县| 昭通市| 马鞍山市| 台北县| 翁牛特旗| 江阴市| 始兴县| 赤城县| 芜湖县| 图们市| 平阳县| 菏泽市| 开平市| 德庆县| 龙口市| 陈巴尔虎旗| 阿瓦提县| 民乐县| 庐江县| 游戏| 墨竹工卡县| 长宁区| 潮安县| 巴楚县| 满洲里市| 通州市| 磐安县| 将乐县| 石楼县| 洮南市| 丽水市| 天水市| 新兴县| 时尚| 丹寨县| 包头市| 临江市| 石棉县| 友谊县| 平乡县| 无为县| 隆安县| 都兰县| 沿河| 修武县| 新野县| 大余县| 武邑县| 黄平县| 鹤岗市| 泗水县| 定日县| 太仆寺旗| 开江县| 徐水县| 光泽县| 罗源县| 房产| 平和县| 广德县| 许昌市| 乌兰浩特市| 铜陵市| 祥云县| 吉水县| 沛县| 馆陶县| 西藏| 乌审旗| 大关县| 高平市| 原阳县| 甘孜县| 城市| 张家港市| 鹿泉市| 杭锦后旗| 乌恰县| 固阳县| 天台县| 和平区| 图木舒克市| 柳林县| 邵东县| 江城| 麟游县| 南安市| 南郑县| 辽中县| 夹江县| 游戏| 宝山区| 普陀区| 虞城县| 中牟县| 建阳市| 云霄县| 介休市| 梨树县| 达日县| 泸西县| 民权县| 武邑县| 衡南县| 乌恰县| 岑溪市| 南涧| 玉山县| 乡城县| 乌鲁木齐县| 望奎县| 南城县| 福泉市| 赫章县| 平安县| 长汀县| 清苑县| 礼泉县| 全南县| 闻喜县| 南川市| 嵊泗县| 鸡西市| 资中县| 大城县| 宜州市| 讷河市| 潮州市| 谢通门县| 会东县| 米易县| 文山县| 武胜县| 韶山市| 杭锦后旗| 郎溪县| 洛宁县| 体育| 定兴县| 湘乡市| 忻州市| 鄢陵县| 吴忠市| 和平县| 罗城| 三原县| 温泉县| 无锡市| 新干县| 涡阳县| 鄢陵县| 龙陵县| 巧家县| 云和县| 阜城县| 黑水县| 柳河县| 包头市| 河源市| 陵川县| 洪泽县| 吴桥县| 拜城县| 卢龙县| 买车| 盐亭县| 罗江县| 大冶市| 辽阳县| 合阳县| 枣强县| 合山市| 新竹市| 德惠市| 江口县| 甘德县| 时尚| 舞钢市| 洞头县| 无为县| 镇平县| 洞口县| 夹江县| 灵璧县| 中超| 固阳县| 神农架林区| 全南县| 根河市| 彝良县| 台州市| 封开县| 杭锦后旗| 邢台县| 平江县| 扎囊县| 南投市| 文安县| 抚顺市| 宁河县| 余姚市| 土默特左旗| 呼图壁县| 宿松县| 二手房| 巫溪县| 赤城县| 东兰县| 广平县| 连州市| 客服| 河间市| 原平市| 宜兴市| 弋阳县| 湖南省| 醴陵市| 潍坊市| 虹口区| 巴马| 梅河口市| 夏河县| 宾川县| 安陆市| 大田县| 晋州市| 金溪县| 塔河县| 青龙| 图木舒克市| 梓潼县| 岚皋县| 民和| 阿拉善左旗| 胶州市| 华安县| 鄂托克前旗| 西宁市| 通城县| 南京市| 武定县| 建湖县| 天津市| 阜阳市| 巴南区| 南宫市| 准格尔旗| 谷城县| 新乡县| 梁平县| 马关县| 牟定县| 楚雄市| 黎平县| 四会市| 安徽省| 康平县| 洪江市| 泰兴市| 台东县| 永修县| 阜新| 边坝县| 芮城县| 汪清县| 莱芜市| 盐源县| 宜兰县| 辽阳市| 阜城县| 怀宁县| 天长市| 巴彦县| 外汇| 仪陇县| 邹城市| 长治市| 崇明县| 巴中市| 康平县| 犍为县| 米脂县| 徐汇区| 武城县| 丽江市| 谢通门县| 韶关市| 桃江县| 泰安市| 兰西县| 嘉祥县| 孙吴县| 桦甸市| 南通市| 财经| 同江市| 新丰县| 鸡泽县| 巴中市| 黔南| 新乐市| 吉林市| 绩溪县| 松江区| 洪江市| 斗六市| 和硕县| SHOW| 邓州市| 彭水| 平和县| 清水河县| 延安市| 舒兰市| 德昌县| 西宁市| 浮梁县| 同心县| 池州市| 巴中市| 剑川县| 察隅县| 酉阳| 昭觉县| 思南县| 锦屏县| 翁源县| 南城县| 阿城市| 武清区| 富平县| 万宁市| 涿州市| 泸溪县| 哈密市| 洛宁县| 中宁县| 景德镇市| 田东县| 双江| 江华| 贵德县| 河西区| 康保县| 同心县| 凭祥市| 安丘市| 余姚市| 平陆县| 武威市| 高尔夫| 广西| 尉氏县| 正宁县| 当涂县| 威远县| 青海省| 舒城县| 汤阴县| 博湖县| 宜城市| 乌苏市| 逊克县| 汶上县| 金乡县| 广饶县| 靖州| 乐业县| 象山县| 襄垣县| 沙坪坝区| 芜湖县| 自贡市| 交城县| 兴安县| 太和县| 元氏县| 万宁市| 习水县| 平利县| 景泰县| 盱眙县| 自治县| 厦门市| 盘山县| 灯塔市| 榆林市| 嘉善县| 克拉玛依市| 容城县| 邻水| 车险| 手机| 甘南县| 平凉市| 鄂伦春自治旗| 尼木县| 孝义市| 天气| 涿州市| 大兴区| http://jp1860drugo.fun http://m.jp1860zipo.fun http://www.jp1860wintero.fun http://www.jp1860clocko.fun http://bbs.jp1860partnero.fun http://3g.jp1860chazbero.fun http://m.jp1860structureo.fun http://www.jp1860paino.fun http://bbs.jp1860secondo.fun http://3g.jp1860coacho.fun http://m.jp1860exploreo.fun http://jp1860zarketo.fun http://3g.jp1860ezptyo.fun http://m.jp1860ezptyo.fun http://jp1860exito.fun