用動態記憶體讀入任意大小的檔案(c語言)
#include <stdio.h>
int
getsize(char *filename)
{
FILE *pf;
pf = fopen(filename,"r");
if(pf)
{
int size;
fseek(pf,0,SEEK_END); //移動到檔案末尾,燃火用檔案內部實現的檔案偏移來獲得檔案的大小
size = ftell(pf);
fclose(pf);
return size;
}
else
return -1;
}
int main()
{
char
*buffer;
char filename[256]={0};
FILE *f;
int len;
printf("輸入檔名字:");
gets(filename);
len = getsize(filename); //訪問檔案失敗
if(len==-1)
{
perror("檔案錯誤!:");
exit(1);
}
buffer = calloc(1,len+2); //申請len+2大小全為0的記憶體空間
f = fopen(filename,"r");
if(!f || buffer==0) //錯誤處理
{
perror("檔案錯誤!:");
exit(1);
}
fread(buffer,1,len,f);//讀出所有檔案的內容
printf(buffer);//輸出所有檔案了內容
return
0;
}
相關文章
- C語言(動態記憶體分配)C語言記憶體
- 【轉】用C語言實現將一個檔案讀入記憶體中(分享轉載)C語言記憶體
- 獲得檔案的大小(c語言)C語言
- C語言之動態記憶體管理C語言記憶體
- C語言malloc()函式:動態分配記憶體空間C語言函式記憶體
- C語言的記憶體分配C語言記憶體
- C語言-記憶體分配C語言記憶體
- C語言:記憶體使用C語言記憶體
- C語言-檔案讀寫C語言
- C語言記憶體對齊C語言記憶體
- C語言-記憶體管理之一[記憶體分配]C語言記憶體
- C語言-記憶體管理之二[記憶體指令]C語言記憶體
- c語言野指標與結構體指標動態記憶體分配小解C語言指標結構體記憶體
- C語言/C++讀取檔案資訊C語言C++
- C語言記憶體地址基礎C語言記憶體
- C語言lseek()函式:移動檔案的讀寫位置C語言函式
- C++ 動態記憶體分配C++記憶體
- C++動態記憶體分配C++記憶體
- C語言:動態記憶體會被自動釋放嗎?杜絕“野指標”C語言記憶體指標
- 用c語言處理檔案C語言
- C語言讀取寫入CSV檔案 [一]基礎篇C語言
- 【C語言】整型在記憶體中的儲存C語言記憶體
- 學了指標沒學動態記憶體一切都白搭!C語言基礎教程之記憶體管理指標記憶體C語言
- 如何在Java中讀取超過記憶體大小的檔案Java記憶體
- C和C++的動態記憶體管理的區別C++記憶體
- C++動態記憶體管理——new/deleteC++記憶體delete
- C++ 指標動態記憶體分配C++指標記憶體
- C 語言結構體記憶體佈局問題結構體記憶體
- C語言結構體記憶體佈局問題C語言結構體記憶體
- 任意檔案讀取
- C語言:記憶體位元組對齊詳解C語言記憶體
- Go語言記憶體模型Go記憶體模型
- C語言檔案操作C語言
- C語言(檔案操作)C語言
- Java記憶體模型FAQ(二) 其他語言,像C++,也有記憶體模型嗎?Java記憶體模型C++
- C語言-記憶體函式的實現(一)之memcpyC語言記憶體函式memcpy
- C語言-記憶體函式的實現(二)之memmoveC語言記憶體函式
- Go 語言的手工記憶體管理Go記憶體