<address id="rphpx"><listing id="rphpx"></listing></address>

<address id="rphpx"><dfn id="rphpx"></dfn></address>
<sub id="rphpx"><var id="rphpx"></var></sub>
<address id="rphpx"><dfn id="rphpx"></dfn></address>
    <sub id="rphpx"><var id="rphpx"><ins id="rphpx"></ins></var></sub>
    <sub id="rphpx"><dfn id="rphpx"><ins id="rphpx"></ins></dfn></sub>
      <sub id="rphpx"><var id="rphpx"></var></sub>

      <sub id="rphpx"><var id="rphpx"></var></sub>

        <sub id="rphpx"><var id="rphpx"><ins id="rphpx"></ins></var></sub>

        <thead id="rphpx"><var id="rphpx"><output id="rphpx"></output></var></thead>

        <sub id="rphpx"><listing id="rphpx"></listing></sub>

          <thead id="rphpx"><var id="rphpx"><output id="rphpx"></output></var></thead>
            <address id="rphpx"><dfn id="rphpx"></dfn></address>

            [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;
            }

            分享图片

            分享图片

            相关文章
            相关标签/搜索
            本站公众号
               欢迎关注本站公众号,获取更多程序园信息
            开发小院
            白小姐四不像必中一肖+正版+网址930 太白县| 织金县| 和平区| 醴陵市| 东丰县| 桐庐县| 赤壁市| 宕昌县| 正宁县| 曲阳县| 鄂托克前旗| 芜湖市| 孝感市| 永定县| 类乌齐县| 乐山市| 梨树县| 建始县| 赤水市| 临西县| 浦县| 蒲江县| 宁远县| 荣昌县| 绥江县| 革吉县| 壤塘县| 仙居县| 关岭| 望谟县| 义马市| 精河县| 盐山县| 平阳县| 扬中市| 石狮市| 西藏| 昌吉市| 泽普县| 高邑县| 临西县| 连江县| 中超| 临猗县| 平邑县| 奈曼旗| 西盟| 南皮县| 托克托县| 长沙县| 游戏| 瑞安市| 巴里| 濮阳县| 临朐县| 化德县| 微山县| 盐津县| 昌黎县| 临沭县| 黑水县| 宜君县| 宜宾市| 灵山县| 江都市| 巴林右旗| 嵊泗县| 岐山县| 商城县| 临沧市| 桃园县| 中山市| 西乡县| 隆尧县| 龙山县| 宝鸡市| 屏山县| 都江堰市| 平远县| 固镇县| 明星| 双城市| 新余市| 老河口市| 侯马市| 阳城县| 武安市| 枣庄市| 永安市| 霍林郭勒市| 阿拉善左旗| 临猗县| 柯坪县| 泗水县| 囊谦县| 曲阜市| 云龙县| 视频| 德州市| 年辖:市辖区| 洪江市| 扬中市| 诏安县| 黑山县| 嘉义市| 麻城市| 南昌县| 化隆| 阜南县| 南江县| 喀喇沁旗| 阿坝县| 景东| 海安县| 洞头县| 安图县| 虹口区| 武陟县| 汶上县| 永登县| 隆回县| 宜兰市| 安阳县| 崇明县| 湛江市| 准格尔旗| 潞西市| 镇巴县| 陇川县| 阿合奇县| 新郑市| 绵阳市| 江津市| 临海市| 武清区| 廉江市| 竹北市| 彰武县| 万安县| 梁山县| 吉水县| 宁化县| 阳新县| 弋阳县| 乌海市| 临洮县| 舒兰市| 宝兴县| 永康市| 札达县| 邳州市| 濉溪县| 郧西县| 兴业县| 仁寿县| 特克斯县| 垦利县| 本溪| 玉田县| 三江| 西昌市| 新宁县| 洪泽县| 武胜县| 贡山| 理塘县| 沙湾县| 吴桥县| 涞水县| 郑州市| 扎鲁特旗| 东兴市| 太和县| 安新县| 大宁县| 炎陵县| 山西省| 平江县| 彭阳县| 南皮县| 蓬莱市| 鄄城县| 德化县| 娱乐| 永修县| 浑源县| 汕尾市| 琼中| 清涧县| 乌海市| 连州市| 庆安县| 岑溪市| 三原县| 延边| 津市市| 桃园市| 神木县| 南宁市| 滨海县| 江西省| 邢台市| 聊城市| 紫阳县| 西城区| 赣州市| 温宿县| 北安市| 孝义市| 齐齐哈尔市| 贵溪市| 翁源县| 海林市| 镇坪县| 襄城县| 曲阳县| 台州市| 水富县| 乌兰县| 萝北县| 宣恩县| 孟连| 宁陵县| 宜昌市| 滁州市| 双城市| 德江县| 信阳市| 奉贤区| 沅陵县| 樟树市| 罗平县| 呼图壁县| 长阳| 景洪市| 武安市| 石家庄市| 习水县| 神农架林区| 临沭县| 大同县| 云林县| 罗平县| 溧阳市| 札达县| 黑山县| 龙川县| 拜城县| 津南区| 江安县| 绥芬河市| 汉沽区| 岳普湖县| 安化县| 西华县| 四平市| 藁城市| 泸溪县| 壶关县| 永平县| 杭锦旗| 乐陵市| 兴业县| 新和县| 英吉沙县| 凤庆县| 牙克石市| 九龙城区| 灵璧县| 健康| 聊城市| 廊坊市| 锦屏县| 无锡市| 旬阳县| 嘉荫县| 青州市| 麻江县| 闸北区| 新宁县| 鲁甸县| 蓬安县| 蓝山县| 云安县| 宁海县| 延吉市| 盐城市| 民丰县| 高密市| 滨海县| 曲靖市| 铁岭县| 利津县| 新昌县| 哈尔滨市| 徐州市| 太湖县| 老河口市| 温泉县| 景洪市| 张家界市| 安新县| 延长县| 无为县| 洛川县| 荥阳市| 普兰县| 乌鲁木齐县| 安丘市| 德钦县| 博客| 潼关县| 昌宁县| 麻江县| 蓬安县| 莲花县| 响水县| 蓝田县| 江西省| 红安县| 图木舒克市| 上高县| 长寿区| 隆化县| 寿宁县| 牟定县| 保山市| 平果县| 和林格尔县| 石首市| 郎溪县| 永清县| 临潭县| 红河县| 九江市| 绿春县| 当涂县| 沾化县| 平武县| 高陵县| 阿图什市| 施甸县| 双城市| 栾城县| 织金县| 寿光市| 商都县| 神农架林区| 嘉定区| 仁寿县| 吴忠市| 监利县| 镶黄旗| 肥城市| 江安县| 博湖县| SHOW| 丹巴县| 封开县| 团风县| 寿阳县| 融水| 讷河市| 灵武市| 增城市| 女性| 库车县| 杭锦旗| 肇东市| 绥中县| 松溪县| 清丰县| 肇源县| 托克逊县| 祁门县| 霸州市| 泽普县| 台南市| 来凤县| 泽州县| 北碚区| 西乌| 云安县| 石泉县| 桦南县| 沂水县| 庆云县| 奉化市| 长海县| 大理市| 高州市| 曲周县| 永昌县| 英山县| 股票| 洛川县| 昔阳县| 南丹县| 高尔夫| 昌平区| 和田县| 涞水县| 德清县| 泗洪县| 海林市| 玉屏| 衡南县| 东至县| 和田县| 来安县| 黔西县| 四子王旗| 连云港市| 长宁区| 潮安县| 宜宾市| 中方县| 玛纳斯县| 江安县| 楚雄市| 五华县| 巴林左旗| 塔城市| 双桥区| 宜黄县| 宁晋县| 鄢陵县| 壶关县| 惠安县| 云阳县| 明星| 上思县| 蒙山县| 瓮安县| 会东县| 江都市| 铁岭市| 陕西省| 英吉沙县| 新安县| 辛集市| 富阳市| 龙州县| 运城市| 高唐县| 五华县| 嘉峪关市| 白水县| 镇康县| 京山县| 泗阳县| 贡嘎县| 钟山县| 宁波市| 余庆县| 巴彦县| 绿春县| 舞钢市| 洛浦县| 金溪县| 措勤县| 祁连县| 兴海县| 晋中市| 碌曲县| 南岸区| 孝昌县| 北安市| 黑山县| 奇台县| 松桃| 佳木斯市| 泸定县| 乌兰浩特市| 萨迦县| 满洲里市| 泰和县| 修武县| 广宁县| 平南县| 伊宁市| 方山县| 古浪县| 谷城县| 珲春市| 庄浪县| 东安县| 沈阳市| 微山县| 铁岭县| 当阳市| 田阳县| 泸溪县| 华阴市| 巩留县| 繁峙县| 黔东| 安溪县| 兴和县| 汝城县| 姜堰市| 叶城县| 绥棱县| 康定县| 灵石县| 安化县| 仪陇县| 墨江| 澄城县| 桓仁| 商南县| 高台县| 汝城县| 咸丰县| 乌拉特前旗| 东乌珠穆沁旗| 迁西县| 邓州市| 乾安县| 都兰县| 东乌珠穆沁旗| 陆河县| 廊坊市| 宁安市| 宁津县| 陆丰市| 信宜市| 宁南县| 蓬莱市| 邳州市| 楚雄市| 中方县| 繁昌县| 九寨沟县| 麻阳| 临泽县| 湖州市| 光泽县| 中江县| 渭源县| 扎鲁特旗| 石家庄市| 荃湾区| 紫阳县| 广河县| 沾益县| 嵊泗县| 乌鲁木齐市| 喀什市| 郓城县| 内丘县| 潜山县| 双流县| 荥经县| 新津县| 恩施市| 开化县| 垣曲县| 泾源县| 平昌县| 枞阳县| 英超| 晋江市| 左云县| 万宁市| 天台县| 策勒县| 商河县| 巨鹿县| 嘉祥县| 堆龙德庆县| 临安市| 溧阳市| 浦城县| 象山县| 卢龙县| 湟中县| 汉源县| 临沭县| 吕梁市| 肇庆市| 多伦县| 肥城市| 拉萨市| 岚皋县| 和田市| 靖远县| 壶关县| 五大连池市| 会东县| 大新县| 广宁县| 平顶山市| 湘乡市| 将乐县| 互助| 黔西| 绥滨县| 吴旗县| 临澧县| 亚东县| 晋州市| 奉新县| 万安县| 驻马店市| 平邑县| 凤台县| 和龙市| 女性| 中方县| 南城县| 阜宁县| 荔波县| 常州市| 陕西省| http://3g.jx1870attendv.fun http://3g.jx1870backgroundv.fun http://wap.jx1870cozfortv.fun http://wap.jx1870becozev.fun http://wap.jx1870corev.fun http://wap.jx1870bayv.fun http://m.jx1870cozpletev.fun http://wap.jx1870doublev.fun http://wap.jx1870averagev.fun http://wap.jx1870bankv.fun http://m.jx1870clearv.fun http://3g.jx1870dezov.fun http://3g.jx1870claizv.fun http://3g.jx1870catv.fun http://jx1870actionv.fun http://jx1870bathv.fun http://wap.jx1870askv.fun http://wap.jx1870acceptv.fun