From: <den...@sn...> - 2003-08-06 07:12:17
|
= =20 Pour : mingw-us= er...@li... =20 cc : = =20 Objet : [Mi= ngw-users] strange fstream =20 G Brown <br...@ya...> behaviour on winxp= =20 Envoy=E9 par : = =20 min...@li...urc = =20 eforge.net = =20 = =20 = =20 05/08/03 16:17 = =20 Veuillez r=E9pondre =E0 = =20 mingw-users = =20 = =20 = =20 The limit is in your own code, >Is there some limit on the maximum number of (output) file streams on >windows? On my winXP machine the following code produces files up to >file509, then no more files are created. >Am I doing something wrong here? because I do not observe this behaviour >under Linux. This quite strange ??? >#include <iostream> >#include <fstream> >#include <sstream> >using namespace std; > > >int main(int argc, char** argv) { > int i ; > ofstream *out_mu ; > const int I=3D10, J=3D51 ; > > out_mu=3Dnew ofstream[I*J] ; > > for(i=3D0; i< I*J; ++i) { ^ | +-- Your limit is here, try with J=3D52 then you create up to 519 files. > stringstream ii ; > ii << i ; > cout << "creating file " << i <<endl ; > string fname =3D "file" + ii.str() ; > out_mu[i].open(fname.c_str()) ; > } > return 0 ; >} >Thanks, >GB Dun'. ... ... |
From: G B. <br...@ya...> - 2003-08-06 08:59:48
|
Aaaaghh, I now see that there was an error in my original post I should have stated that only up to file508 was created. Since the index starts at 0 this is in fact a total of 509 files. It seems that when the number of output file-streams is bigger than 509 only the first 509 will be created. This happens with the mingw port of gcc. As anyone can easily verify changing J to 52 will still result in 509 files being created, with the last named file508. > The limit is in your own code, > > >Is there some limit on the maximum number of (output) file streams on > >windows? On my winXP machine the following code produces files up to > >file509, then no more files are created. > > >Am I doing something wrong here? because I do not observe this behaviour > >under Linux. > > This quite strange ??? > > >#include <iostream> > >#include <fstream> > >#include <sstream> > >using namespace std; > > > > > >int main(int argc, char** argv) { > > int i ; > > ofstream *out_mu ; > > const int I=10, J=51 ; > > > > out_mu=new ofstream[I*J] ; > > > > for(i=0; i< I*J; ++i) { > ^ > | > +-- Your limit is here, try with J=52 then you create up to > 519 files. > > > stringstream ii ; > > ii << i ; > > cout << "creating file " << i <<endl ; > > string fname = "file" + ii.str() ; > > out_mu[i].open(fname.c_str()) ; > > } > > return 0 ; > >} > > >Thanks, > >GB > > > Dun'. __________________________________ Do you Yahoo!? Yahoo! SiteBuilder - Free, easy-to-use web site design software http://sitebuilder.yahoo.com |