2011-04-12 117 views
5

可能重复:
C++ alternative to perror()相当于perror的C++流是什么?

我无法找到等价流至perror。有这样的事吗?我喜欢这样的事实,我可以打电话:

perror("Error"); 

而且它会在什么errno是填补。我可以用流做这个吗?

+0

@Erik:是的......我之前看到的功能,我只是无法拿出一遍。谢谢! – Andrew 2011-04-12 20:04:47

回答

14

要打印的错误消息:

str << strerror(errno); 

如果你谈论的流错误状态 - 不,你不能得到一个自动有意义的错误消息为。

4

由于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; 
相关问题