stdout无声失败

时间:2011-12-20 05:58:45

标签: c++ stdout iostream

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

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

OR

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

在任何一种情况下都没有输出,stdout被打破。在iostream代码的情况下,cout.good()返回true,没有设置failbits!当使用fwrite我检查ferror,这也很好!!!通过stdout被破坏,我的意思是在应用程序会话的其余部分没有任何内容通过stdout输出。我尝试使用相应的接口重置stdout错误状态无济于事。

我非常倾向于认为这是一个库错误,因为这样的事情真的不应该无声地发生故障。

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

1 个答案:

答案 0 :(得分:0)

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