Максимальное количество одновременных файловых потоков?
Я пытаюсь выполнить по существу код ниже. Я создаю массив файловых потоков, а затем открываю их все и что-то записываю в них. Проблема в том, что по какой-то причине, если шарики больше 508, файлы больше не создаются... Да, число 508. Даже если я попытаюсь вручную создать 509-й поток после цикла, он не создаст его (не появляется каталог). Это происходит, если я пытаюсь сделать шары с любым значением больше 508, и единственный способ, который я нашел, - это закрыть некоторые или все предыдущие потоки. Я действительно хочу иметь возможность открыть 2000 потоков во время выполнения программы до их закрытия, но я предполагаю, что это как-то связано с ограничением памяти. Сколько места нужно, чтобы открыть простой поток файлов? У меня есть i7 3770k, который имеет приличный размер кэша, 64-битную машину и 16 ГБ памяти. Обратите внимание, что это происходит даже при записи строки 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";
}
}