使用C / C ++中的有限主内存编辑10gb文件
我需要使用仅100mb的内存尽快对包含数字列表的10gb文件进行排序。
我把它们分成几块然后合并它们。
我目前正在使用C文件指针,因为它们比c ++文件i / o(至少在我的系统上)更快。
我尝试了1gb文件并且我的代码工作正常,但是在打开10gb文件后,只要我fscanf就会引发分段错误。
FILE *fin;
FILE *fout;
fin = fopen( filename, "r" );
while( 1 ) {
// throws the error here
for( i = 0; i < MAX && ( fscanf( fin, "%d", &temp ) != EOF ); i++ ) {
v[i] = temp;
}
我应该用什么呢?
对于如何以最佳方式解决这个问题,您有什么建议吗?
没有找到相关结果
已邀请:
1 个回复
扫窟