zoukankan      html  css  js  c++  java
  • 自定义配置文件读取

    读取配置文件 以#开头的行是注释行  键和值 用空格分开 一行一个键值对

    如:

    #  注释

    key1 2

    key2  aab

    增加结构体 Config的成员key(自行定义的变量名)存变量, 添加代码

            if( strcasecmp(key,"key")==0 ) {
                strncpy(sConfig->key,val,128);
            }
    获取值。
    typedef struct 
    {
        int port;
        char rootDir[128];
    } Config;
    /**
     * read config from httpd.conf 
     * parameters : file name 
     * return 
     */
    /**
     * [readCfg read conf  key val ]
     * @param filename [file name ]
     * @param sConfig  [config struct ]
     */
    void readCfg(char *filename, struct Config* sConfig)
    {
        FILE *pf = NULL;
        char buf[2048];
        int i = 0,j = 0;
        char key[128];
        char val[128];
    
        pf = fopen(filename, "r+");
        if (NULL==pf){
            perror("open config file error. use default config.");
            return;
        }
        while(!feof(pf)) {
            fgets(buf,2048,pf);
            i = 0; j = 0;
            printf("%s
    ", buf);
            // get key 
            while (!isspace(buf[i]) && (i < strlen(buf) - 1))
            {
                key[j] = buf[i];
                i++;
                j++;
            }
            key[j] = 0;
            printf("%s
    ", key);
    
            if ('#'==key[0]) continue;
            // get val
            i++; j=0;
            while (!isspace(buf[i]) && (i < strlen(buf) - 1))
            {
                val[j] = buf[i];
                i++;
                j++;
            }
            val[j] = 0;
            printf("%s
    ", val);
    
            if( stricmp(key,"port")==0 ) {
                sConfig->port = atoi(val);
            }
    
            if( stricmp(key,"rootDir")==0 ) {
                strncpy(sConfig->rootDir,val,128);
            }
        }
        fclose(pf);
    }
  • 相关阅读:
    每周进度条07
    软件需求模式阅读笔记06
    每周进度条06
    软件需求模式阅读笔记05
    Django之ModelForm组件
    Django的性能优化
    分页,缓存,序列化,信号
    Django补充——中间件、请求的生命周期等
    Git基础介绍和使用
    Django基础之三
  • 原文地址:https://www.cnblogs.com/swing07/p/10527297.html
Copyright © 2011-2022 走看看