菜单

linux程序运行参数解析

2019年8月2日 - 4166am金沙下载
#include <getopt.h>   //linux解析命令参数
#include <limits.h>

static char *l_opt_arg;

static int Para_CmdParse(int argc, char *argv[])
{
    int c;
    int len;
    int value;

    /*遍历输入参数,设置配置参数*/
    while ((c = getopt_long (argc, argv, shortopts, longopts, NULL)) != -1)
    {
        switch (c)
        {
            case 'c':   /*CGI根路径*/
                l_opt_arg = optarg;//optarg在getopt.h中定义
                if(l_opt_arg && l_opt_arg[0]!=':'){
                    len = strlen(l_opt_arg);
                    memcpy(conf_para.CGIRoot, l_opt_arg, len +1);
                }

                break;
            case 'p':   /*侦听端口*/
                l_opt_arg = optarg;
                if(l_opt_arg && l_opt_arg[0]!=':'){
                    len = strlen(l_opt_arg);
                    value = strtol(l_opt_arg, NULL, 10);
                    if(value != LONG_MAX && value != LONG_MIN)
                        conf_para.ListenPort = value;
                }

                break;
            case '?':/*错误参数*/
                printf("Invalid para\\n");
            case 'h':   /*帮助*/
                display_usage();
                break;
        }
    }
    return 0;
}

static void display_usage(void)
{
    printf("appNmae -l number -c  path \\n");
    printf("appNmae--ListenPort number\\n");
    printf("       --CGIRoot path \\n");
}
//该片段来自于http://outofmemory.cn

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图