我找不到相当于perror
的流。有这样的事吗?我喜欢我可以打电话的事实:
perror("Error");
它将填写errno
的内容。我可以用流吗?
答案 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;