我正在尝试将zlib压缩的字符串输出到stdout,这确实发生了一些奇怪的事情。成功运行zlib deflate操作(检查所有正确的返回值)后,我尝试使用以下两种方法之一输出未格式化的结果:

fwrite((void*)output, 1, numbytes, stdout);


要么

for(int i=0; i != numbytes; ++i)
    cout.put(output[c]);
if(!cout.good())
    throw error();


在这两种情况下,都不会输出任何内容,并且stdout会损坏。对于iostream代码,cout.good()返回true,未设置任何故障位!当使用fwrite我检查错误,那也很好!!!通过stdout中断,我的意思是在其余的应用程序会话中,stdout不会输出任何内容。我尝试将各个接口的stdout错误状态重置为无效。

我非常倾向于相信这是一个库错误,因为这样的事情确实不应默默地出现故障。

所有这些都是在运行XCode 4.2的OSX 10.6下发生的。

最佳答案

这可能是XCode或GDB问题。我无法重现从控制台或Windows下运行的错误。

关于c++ - 标准输出静默故障,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8571378/

10-16 04:23