美文网首页
关于从文件读取配置信息

关于从文件读取配置信息

作者: 六十年目裁判长亚玛萨那度 | 来源:发表于2018-11-23 17:40 被阅读0次

    在我编写项目的时候,有时候需要遇到配置项修改的问题,那么这个时候设置一个文件来记录配置项是极好的。

    例如配置项是这样的:
    ip=192.168.1
    head=1
    tail=100
    port=12345
    master_ip=192.168.1.154
    

    这个时候呢,就需要编写一个函数来操作文件并且获取文件信息了,那么接下来呢,就是实现一个对文件操作的函数。

    实现文件读取的函数是这次操作的主体部分。

    文件读取代码:
    int read_file(char *filename, char *path, char *arr) {
        FILE *fp;
        if ((fp = fopen(filename, "r")) == NULL) {
            perror("client fopen error!");
            exit(0);
        }
        size_t len = 0;
        char *line = NULL;
        ssize_t read;
        int path_len = strlen(path);
        while ((read = getline(&line, &len, fp)) != -1) {
            if (strstr(line, path) == NULL) continue;
            if (line[path_len] != '=') continue;
            
            strncpy(arr, &line[path_len + 1], read - path_len - 1);
            int addlen = strlen(arr);
            arr[addlen - 1] = '\0';
            break;
        }
        fclose(fp);
        return 0;
    
    }
    

    首先传入参数是: 文件地址, 查找的参数, 传出参数。

    使用条件

    linux标准C中使用条件:
    #define _GNU_SOURCE
    #include <stdio.h>
    函数声明:ssize_t getline(char **lineptr, size_t *n, FILE *stream);

    返回值

    成功:返回读取的字节数。
    失败:返回-1。
    参数:

    lineptr:指向存放该行字符的指针,如果是NULL,则有系统帮助malloc,请在使用完成后free释放。
    
    n:如果是由系统malloc的指针,请填0
    
    stream:文件描述符
    

    相关文章

      网友评论

          本文标题:关于从文件读取配置信息

          本文链接:https://www.haomeiwen.com/subject/hkajqqtx.html