说明:此方式主要用于读取文件为内容连续无换行符文件(如json数据),若有很多换行符想读取每行数据或挑出哪一行数据读取可用别的方法更易读取。
demo:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <unistd.h>
#include <fcntl.h>
#include <assert.h>
#define FILE_PATH "./test.conf"
int read_file()
{
FILE *fp = fopen(FILE_PATH, "r");
char *p;
if (NULL == fp) {
goto err1;
}
/*获取文件字节大小size*/
fseek(fp, 0, SEEK_END);
int size = ftell(fp);
fseek(fp, 0, SEEK_SET);
if(size > 0)
{
printf("size: %d\n",size);
p = (char *)calloc(size,sizeof(char));
}
/*读文件内容存入内存*/
fread(p, size, 1, fp);
fclose(fp);
p[size-1] = '\0';
printf("p : %s\n",p);
free(p);
return 0;
err1:
return 1;
}
int main()
{
read_file();
return 0;
}