![]() |
1
4
您可以尝试通过以下方式强制缓冲区刷新其内容:
否则
|
![]() |
2
1
这里没有这样的问题:
编辑: 我通过编译你发布的程序来测试这一点。我创建了一个由0123456789重复100000次组成的文件(使其大小为1000000字节)。然后,我跑了
和
|
![]() |
3
1
问题可能是管道操作员(|)而不是“cat”。Windows命令解释器[1]没有真正的管道(如Unix),并使用临时文件模拟它们。可能是磁盘空间不足或命令解释器中的缓冲区溢出。 您可以尝试“键入bigfile.txt | reverse.exe”,看看是否得到相同的结果。 [1] 至少旧版本没有真正的管道。我还没有看过最新的版本。有趣的是,Michael Burr无法在Vista x64上复制它。也许MS已经解决了这个问题。 |
![]() |
4
0
在每次循环迭代期间,或者可能每100次迭代期间,您可以睡一小段时间吗?这将使操作系统有机会刷新缓冲区。 我不知道C++中的命令是什么,但是在C语言中是这样的。
|
![]() |
5
0
感谢所有的建议,尤其是Michael Burr,他正确地推断了cat命令,而不是reverse.exe,可能会失败!那正是事情的原委。。reverse.exe<bigfile.txt工作正常,但cat bigfile.txt | reverse.exe因“错误写入标准输出”而失败。 现在为什么CAT会失败也是一个谜,但至少现在它与代码无关。 |
![]() |
6
0
|
![]() |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
![]() |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
![]() |
rainer · 后台插入程序的初始化 1 年前 |
![]() |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |