热门 购物 团购 理财 文学 人才 体育 汽车 游戏 软件 军事 音乐 视频 媒体 论坛 博客 银行 交友 综合
一起购 唯品会 梦芭莎 趣玩网 凡客诚品 麦考林 乐淘鞋网 弗克尚品 绿盒子 俏物悄语 新蛋网 当当网 玛萨玛索
拉手网 糯米网 爱帮团 聚划算 58团购 美团网 QQ团购 大众点评团 窝窝团 美淘网 满座网 团宝网 饭统饭团
起点网 榕树下 小说阅读 潇湘书院 红袖添香 幻剑书盟 新浪游戏 太平洋游戏 163邮箱 中国游戏 游戏中国 霏凡软件 铁血军事
访问本站赠送红包啦!凡在支付宝搜索数字口令 528131323 都将获得红包,天天搜索此口令天天得红包^_^
Health Sitology Family Finance Appliances Shopping Clothing Education Legal Rituals Beauty Property Travel Pet Medical Cyclopedia History Military Computers Sports Job Anecdote Geographic Mixed Entertain Literature Emotion Agriculture
/**
 * 任何人任何机构皆可用于任何项目,此软件免费无需书面授权
 * 在软件和软件的所有副本中都必须包含版权声明和软件相关注解
 *
 * 模块: getopt.c
 * 简述: 分析传进来的参数
 * 作者: woods zhang  ->  hoojar@163.com -> http://www.hecart.com/
 * 版权: 2006-2018, 张树林 拥有此源码所有版权 (MIT许可协议)
 * Copyright 2006-2018, Woods Zhang All Rights Reserved (The MIT License)
 */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <getopt.h>

/**
 * 打印出使用指南
 */
void print_usage(const char *pname)
{
    printf("Usage: %s [OPTION]... ", pname);
    printf("IM SERVER FOR CHAT.  Without OPTION, same as -h. ");
    printf("-a, --addr        server bind addr ");
    printf("-P, --port        server bind prot ");
    printf("-h, --dbhost      connect mysql host ");
    printf("-u, --dbuser      connect mysql user ");
    printf("-p, --dbpkey      connect mysql password ");
    printf("-n, --dbname      connect mysql database name ");
    printf("-v, --version     print the version ");
    printf("-h, --help        display this help and exit ");
}

int main(int argc, char **argv)
{
    if (argc == 1)
    {
        print_usage(argv[0]);
        exit(EXIT_FAILURE);
    }

    int opt_cmd = 0;//参数选项对就的指令编号
    int opt_index = 0;//指向的变量将记录当前找到参数符合long_opts里的第几个元素

    /**
    optstring: 表示短选项字符串。
    形式如“a:b::cd:“,分别表示程序支持的命令行短选项有-a、-b、-c、-d,冒号含义如下:
    (1)只有一个字符不带冒号 只表示选项, 如:-c
    (2)一个字符后接一个冒号 表示选项后面带一个参数,如:-a 100但-a=100出错
    (3)一个字符后接两个冒号 表示选项后面带一个可选参数,即参数可有可无,如果带参数则选项与参数直接不能有空格形式应该如:-b200
    */
    const char opt_str[] = "a:p:h:u:p:n:vH";

    /**
    no_argument(或者是0)时参数后面不跟参数值:--参数
    required_argument(或者是1)时参数输入格式为:--参数 值 或者 --参数=值
    optional_argument(或者是2)时参数输入格式只能为:--参数=值
    */
    static struct option long_opts[] =
    {
        {"addr", required_argument, NULL, 'a'},
        {"port", required_argument, NULL, 'P'},
        {"dbhost", required_argument, NULL, 'h'},
        {"dbuser", required_argument, NULL, 'u'},
        {"dbpkey", required_argument, NULL, 'p'},
        {"dbname", required_argument, NULL, 'n'},
        {"version", no_argument, NULL, 'v'},
        {"help", no_argument, NULL, 'H'},
        {NULL, 0, NULL, 0}//long_opts的最后一个元素必须是全0填充否则会报段错误
    };

    /**
     * 循环分析参数
     */
    while ((opt_cmd = getopt_long(argc, argv, opt_str, long_opts, &opt_index)) != -1)
    {
        switch (opt_cmd)
        {
            case 0:
                printf("NO DATA ");
                break;
            case 'a':
                printf("server addr:%s ", optarg);
                break;
            case 'P':
                printf("server port:%s ", optarg);
                break;
            case 'h':
                printf("mysql host:%s ", optarg);
                break;
            case 'u':
                printf("mysql user:%s ", optarg);
                break;
            case 'p':
                printf("mysql password:%s ", optarg);
                break;
            case 'n':
                printf("mysql dbname:%s ", optarg);
                break;
            case 'v':
                printf("Version: 0.0.1 ");
                return EXIT_FAILURE;
            case 'H':
            default:
                print_usage(argv[0]);
                return EXIT_FAILURE;

        }
    }

    printf("Test get opt long functions ");
    return EXIT_SUCCESS;
}
Reply content :
Photo link :
当今世界经济正以势不可挡的趋势朝着全球市场一体化、商业竞争国际化的方向发展,以互联网、知识经济、高新技术为代表,以满足消费者的需求为核心的新经济迅速发展。新…  Details
厦门,一个沿海的小岛城市,随着互联网的发展,短短几年内已经在业界名声鹊起,甚至有了互联网行业新兴“重镇”如此的美誉。35互联(原中国频道)、商务中国、厦门书生、时…  Details
在今年上半年,中国无线营销市场已风声水起,商业模式和案例层出不穷。正是因为国内的无线互联网行业市场发展逐步成熟,因为拥有超过近1.5亿的无线互联网用户,而国内拥有超…  Details
OTC市场现状分析和营销方式展望 康乙先2002/2/2 在医药行业,人们常常慨叹股市翻云覆雨,同时感到药品市场竞争日益激烈,连近几年来飞速发展的OTC药品也不例外。“现在是套牢…  Details
深圳市西杰克信息咨询有限公司为了配合年底市场活动,采用技术手段,抽样采集了目前热门的网络推广方式的情况,包括Google关键词广告,百度竞价排名,搜狐,新浪,3721竞价广告…  Details
1、 选择有效的关键字: 关键字是描述你的产品及服务的词语,选择适当的关键字是建立一个高排名网站的第一步。选择关键字的一个重要的技巧是选取那些常为人们在搜索时所用到…  Details
一个网站项目的确立是建立在各种各样的需求上面的,这种需求往往来自于客户的实际需求或者是出于公司自身发展的需要,其中客户的实际需求也就是说这种交易性质的需求占了绝…  Details
一、 风险投资和国内网站的结合刚刚起步风险投资进入中国才几年时间,风险投资和国内网站的结合更晚。王志东、张朝阳、张树新算是最早引进风险投资的国内企业家,他们是受…  Details
哈士奇犬优点分析 1.漂亮 哈士奇最大的优点莫过于它漂亮而又冷酷的外型,几乎每个见过它的人,都会发自内心的喜爱上它,也许是人类对狼的一种虏获性心理吧,嗨,谁叫哈…  Details
19世纪80年代,一种无菌的、可包扎的、密封于单独包装、不会被感染且立即可用的外科敷料成品的开发标志着强生公司的诞生。它的使用大大减少了手术后病人感染和再次得病的机会…  Details