这是在win7上。
我有一个执行C ++程序的批处理脚本,并使用“>”将其所有输出带到文件中。
程序从服务器获取输入并显示所有内容。我们需要所有这些信息,因此我们将所有这些输出记录到文件中。但过了一会儿,我们发现程序停止写入文件,并在程序继续运行时停在那里。
文件大小也是0字节(在文件关闭之前操作系统不会更新?)但是我们可以用notepad ++看到文件的内容,但它似乎不再更新。
大约有250,000行,我们发现我们的数据最终会被切断。例如,假设您应该有一个列出123 567 436 975的数据表,我们只看到123 567 43.最后整条线路都没有完成。
有很多东西需要写下来,并且有很多网络传输。当数据太多时,程序是否只是放弃输出?有办法解决这个问题吗?
答案 0 :(得分:0)
尝试禁用缓冲。 setbuf(stdout, NULL);
。
无论如何,在新版本的Windows中,当正在创建文件并正在编写数据时(clasic >file
场景),文件的增长并不总是可见。
在这种情况下,dir
命令显示0字节文件,或停止显示增加的值。
尝试使用type file >nul
然后dir file
来阅读该文件。这“应该”刷新文件大小信息。但它不是必需的。该文件正在增长,只是没有显示它。