我正在尝试创建大量(大约57000个)特定文件的流指针,因此每当我收到数据时,我都可以在特定文件中编写它。
在1021指针之后,指向文件的指针变得腐败。 以下是示例代码及其日志:
#include <iostream> // std::cout, std::ios
#include <sstream> // std::stringstream
#include <fstream>
#include <string>
int main () {
int count = 0;
for (int i =0; i<60000; i++)
{
count++ ;
std::string filename = "abc" + std::to_string(i) + "_data" ;
std::ofstream* abc = new std::ofstream( filename.c_str(), std::ios::app );;
std::cout << "isGood->" << abc->good() <<",count=" << count << ",filname="<< filename << std::endl;
}
return 0;
}
上述代码的输出日志:
...
...
isGood->1,count=1011,filname=abc1010_data
isGood->1,count=1012,filname=abc1011_data
isGood->1,count=1013,filname=abc1012_data
isGood->1,count=1014,filname=abc1013_data
isGood->1,count=1015,filname=abc1014_data
isGood->1,count=1016,filname=abc1015_data
isGood->1,count=1017,filname=abc1016_data
isGood->1,count=1018,filname=abc1017_data
isGood->1,count=1019,filname=abc1018_data
isGood->1,count=1020,filname=abc1019_data
isGood->1,count=1021,filname=abc1020_data
isGood->0,count=1022,filname=abc1021_data
isGood->0,count=1023,filname=abc1022_data
isGood->0,count=1024,filname=abc1023_data
isGood->0,count=1025,filname=abc1024_data
isGood->0,count=1026,filname=abc1025_data
isGood->0,count=1027,filname=abc1026_data
isGood->0,count=1028,filname=abc1027_data
...
...
isGood之后的零是问题,它表示文件不存在或无法写入。
感谢。