problem z otwraciem >509 plików w jednym momencie
Ostatnio zmodyfikowano 2015-05-27 07:58
robaczek122 Temat założony przez niniejszego użytkownika |
problem z otwraciem >509 plików w jednym momencie » 2015-05-26 23:44:36 Cześć, #include <iostream> #include <fstream> #include <conio.h> #include <cstdlib>
using namespace std;
ofstream plik2[ 10000 ]; int i = 0;
int main() { for( i = 0; i <= 600; i++ ) { char buffer[ 33 ]; plik2[ i ].open( itoa( i, buffer, 10 ), ofstream::app ); if( plik2[ i ].is_open() ) { plik2[ i ] << "test"; } else { cout << "Blad otwarcia dla i = " << i << endl; } } for( int j = 0; j <= i - 1; j++ ) { plik2[ j ].close(); } getch(); return( 0 ); }
Tworzone są pliki od 0 do 508, a teoretycznie powinny od 0 do 600. Kod jest uproszczony, chodzi mi tylko rozwiązanie problemu. (Ogólnie chciałem pracować nad około 1000 plików i zamiast otwierać (/tworzyć) jakiś dopisywać na końcu kilka znaków zamykać, otwierać inny, zamykać, otwierać poprzedni otworzyć wszystkie na raz i trzymać je otwarte przez cały czas działania programu. 1000 plików po 1 MB, których nazwy (generowane jako stringi) nie są znane w chwili kompilacji.) |
|
Monika90 |
» 2015-05-26 23:56:59 |
|
robaczek122 Temat założony przez niniejszego użytkownika |
» 2015-05-27 07:58:52 System Windows 7, kompilator CodeBlocks. Chciałem zrobić możliwie jak najszybszy program, dlatego nie chciałem marnować czasu na otwieranie i zamykanie pliku. Dostaję dane w pliku txt i muszę z niego wyciągnąć wartości zapisując do różnych plików. U mnie zadziałało. Dla przyszłych pokoleń rozwiązanie:
#include <stdio.h>
int main() { printf( "%d\n", _getmaxstdio() ); _setmaxstdio( 2048 ); printf( "%d\n", _getmaxstdio() ); }
|
|
« 1 » |