gpt4 book ai didi

c++ - 一次读取完整文件是个好主意吗?

转载 作者:太空宇宙 更新时间:2023-11-04 08:55:43 30 4
gpt4 key购买 nike

我正在一次读取完整文件,还有电影文件。然后我使用该缓冲区一次性写入一个 50KB 的新文件。纠正我这是错误的?下面是示例代码:

FILE * pFile;
long lSize;
char * buffer;
size_t result;

pFile = fopen ( "myfile.bin" , "rb" );
if (pFile==NULL) {fputs ("File error",stderr); exit (1);}

// obtain file size:
fseek (pFile , 0 , SEEK_END);
lSize = ftell (pFile);
rewind (pFile);

// allocate memory to contain the whole file:
buffer = (char*) malloc (sizeof(char)*lSize);
if (buffer == NULL) {fputs ("Memory error",stderr); exit (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);

最佳答案

流读取器模型用于读取文件,因为文件大小没有限制,但是可以使用的内存有限制。如果您的文件大小足够小,可以完全存储在内存中,那没有问题,但是如果您正在读取媒体文件,例如 4GB+ DVD ISO,我认为您的程序会消耗太多内存,无法在低规范计算机上运行。

关于c++ - 一次读取完整文件是个好主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17206430/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com