与perror相当的C ++流是什么?

时间:2011-04-12 19:58:24

标签: c++

  

可能重复:
  C++ alternative to perror()

我找不到相当于perror的流。有这样的事吗?我喜欢我可以打电话的事实:

perror("Error");

它将填写errno的内容。我可以用流吗?

2 个答案:

答案 0 :(得分:14)

要打印错误消息:

str << strerror(errno);

如果您正在讨论流错误状态 - 请不要为此获取自动有意义的错误消息。

答案 1 :(得分:5)

由于perror写入 stderr ,因此C ++中的任何等效项都必须完全相同。也就是说,将strerror(errno)写入流是不够的。流本身应该(我必须说)是标准错误的流。

以下代码段/伪代码可以给您一个想法:

// depending on your compiler, this is all you need to include
#include <iostream>
#include <string.h>
#include <errno.h>

 ... somewhere in your code...

std::cerr << "Error: " << strerror(errno) << std::endl;