- /* fread example: read a complete file 读取一个完整的文件 */
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- FILE* pFile; //文件指针
- long lSize; // 用于文件长度
- char* buffer; // 文件缓冲区指针
- size_t result; // 返回值是读取的内容数量
- pFile = fopen("myfile.bin" , "rb");
- if (pFile == NULL) {fputs("File error", stderr); exit(1);} // 如果文件错误,退出1
- // obtain file size: 获得文件大小
- fseek(pFile , 0 , SEEK_END); // 指针移到文件末位
- lSize = ftell(pFile); // 获得文件长度
- rewind(pFile); // 函数rewind()把文件指针移到由stream(流)指定的开始处, 同时清除和流相关的错误和EOF标记
- // allocate memory to contain the whole file: 为整个文件分配内存缓冲区
- buffer = (char*) malloc(sizeof(char) * lSize); // 分配缓冲区,按前面的 lSize
- if (buffer == NULL) {fputs("Memory error", stderr); exit(2);} // 内存分配错误,退出2
- // copy the file into the buffer: 该文件复制到缓冲区
- result = fread(buffer, 1, lSize, pFile); // 返回值是读取的内容数量
- if (result != lSize) {fputs("Reading error", stderr); exit(3);} // 返回值如果不和文件大小,读错误
- /* the whole file is now loaded in the memory buffer. */ //现在整个文件载入内存缓冲区
- // 读到内存,看自己怎么使用了...............
- // ...........
- // terminate // 文件终止
- fclose(pFile);
- free(buffer);
- return 0;
- }
转载于:https://www.cnblogs.com/ai616818/archive/2012/07/22/2603818.html