最大同时文件流?

时间:2016-07-14 05:59:42

标签: c++ ofstream

我试图执行下面的代码。我创建了一个文件流数组,然后打开所有文件流并向它们写一些东西。问题是,由于某些原因,如果球大于508,它不再创建文件...是的,数字508.即使我尝试在循环后手动创建第509个流,它也不会创建它(不出现目录)。如果我试图使任何值大于508的球,并且我发现让它超过这个的唯一方法是关闭部分或全部之前的流,就会发生这种情况。我真的希望能够在关闭它们之前在程序运行时间内打开2000个流,但我假设这与内存限制有关。打开一个简单的文件流需要多少空间?我有一个i7 3770k,具有不错的缓存大小,64位机器和16G内存。请注意,即使只是写入x,y,z等字符串而没有其他内容,也会发生这种情况。这是一个小文件。

#include <fstream>
#include <iostream>

const int balls = //Whatever I want...;
std::ofstream ballWrite[balls];

int main(){
    // Open all file streams:
    for (int Ball = 0; Ball < balls; Ball++)
    {
        ballWrite[Ball].open("ball" + std::to_string(Ball) + ".csv", std::ofstream::app);
        ballWrite[Ball] << "x,y,z,w_x,w_y,w_z,w_mag,radius,mass,moi\n";
    }
}

0 个答案:

没有答案