我在将大量数据保存到 c++ 中的二进制文件时遇到问题,我正在使用 CodeBlocks
我的代码:
long tablica[10000];
int main(int argc, char *argv[])
{
FILE * pFile;
clock_t start,stop;
srand (time(NULL));
long i;
for(i=0;i<10000;i++){
tablica[i] = rand() % 100000;
}
start = clock();
pFile = fopen ("myfile.bin","wb");
if (pFile!=NULL)
{
long test = fwrite(tablica,sizeof(long),sizeof(tablica),pFile);
int err = ferror(pFile);
fclose(pFile);
printf("%d",err);
}
double wynik;
wynik = double(stop-start);
printf("\n %f",wynik);
return 0;
}
它只是整理了很多数据,并将其保存到文件中。
奇怪的是,当从 DEBUG 配置文件编译和运行它时,它运行良好,而当从 release 运行时,它会抛出错误 num 32 Broken Pipe
我去构建选项,似乎产生调试符号会产生差异,当它在文件上时写入是成功的,如果它关闭,我会得到损坏的管道。
有人可以告诉为什么会出现此问题以及如何将其删除。我需要我的应用程序非常快,我想产生调试符号会减慢它的速度。