请教问题:大文件处理(C语言)
问题:
C语言
需要处理N个大文件,size有可能很大,但是大小上限不能具体知道。
需要并行处理文件。
文件的内容有可能涉及到解码什么的。
我一开始用了2个方法:
<1>先声明一个超大数组,一次性读完文件。问题是太浪费内存,因为文件有可能是很小的。
<2>用malloc动态分配一个文件大小的space。问题是频繁的动态分配,会造成过多的内存碎片,不适合长时间的运行。
C++好像有内部内存管理的类string,但是C++不太拿出手。。。。
哪位大神帮忙想想办法。
[解决办法]
可用double buffer,开两个比如4KB的buffer,一个用于读取数据,一个用于解析,完了把两个buffer交换一下,如此循环。