在我编写项目的时候,有时候需要遇到配置项修改的问题,那么这个时候设置一个文件来记录配置项是极好的。
例如配置项是这样的:
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:文件描述符
网友评论