C語言獲取檔案位元組大小及讀取內容到記憶體簡單例子
阿新 • • 發佈:2019-02-17
說明:此方式主要用於讀取檔案為內容連續無換行符檔案(如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;
}