perror() 的 C++ 替代方案

标签 c++ c error-handling errno cross-language

我知道我们可以使用

perror()

在 C 中打印错误。我只是想知道是否有 C++ 替代方案,或者我是否必须在我的程序中包含这个(以及因此 stdio.h)。我试图避免尽可能多的 C 函数。

最佳答案

你可以这样做:

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

这仍然会调用 strerror,因此您实际上只是将一个 C 函数替换为另一个。 OTOH,它确实允许您通过流编写,而不是混合 C 和 C++ 输出,这通常是一件好事。至少 AFAIK,C++ 没有向库中添加任何内容来替代 strerror(除了生成 std::string,我不确定是什么它会从 strerror 改变)。

关于perror() 的 C++ 替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3320898/

相关文章:

linux - 如何安装 Proc::Daemon 模块

ruby - 我应该如何从 HALT 不可用的类中返回 Sinatra HTTP 错误?

ios - 当用户键入不正确的输入时,以红色突出显示 textField

c++ - 用C++实现Matlab的eps(x)函数

c++ - 最佳二维数据结构

c - 在 C 中读取输入文件时忽略空格

c++ - 线性同余发生器 : How important is setting seed?

c++ - 双缓冲在笔记本电脑上不起作用,在台式机上起作用

c++ - 为什么可以指定异常规范的参数类型?

c - 在 C 中,从用户指定的输入字符串跳转到函数的最快方法是什么