我将使用64位mingw在Windows x64上编译C代码。我使用fwrite从内存数组创建二进制文件。我想调用此函数写入约20GB,但它只能写入1.4~1.5GB,然后停止写入(没有崩溃,只是挂在那里......什么也不做)。有解决方案吗?现在我正在编写20个文件,然后将它们合并。以“ab”模式打开文件可以工作,但如果我使用该模式,则无法正确读取文件。
示例(伪)代码:
示例(伪)代码:
short* dst= malloc(20GB);
*calculations to fill dst*
file=fopen("myfile",'wb');
fwrite(dst, sizeof(short), 20GB/sizeof(short), file);
fclose(file)
这个程序永远不会停止,并且文件大小永远不会超过1.5GB。