【发布时间】:2013-01-07 04:44:59
【问题描述】:
查看 stackoverflow 或其他地方的代码,我似乎很少看到 perror() 用于报告错误的确切性质。 printf 更为常见。这是否表明 perror 有问题或缺失?鉴于它提供了更好的信息,我希望它会被更频繁地使用。
【问题讨论】:
-
比什么更好的信息?在 C++ 中,您可能会使用异常,而使用 perror 只会打印愚蠢的“错误:成功”。
-
它将打印 fopen、malloc 等的确切错误。也许我应该严格保留这个问题。
-
花很多时间编写 Windows 应用程序?
-
因为在许多较小的嵌入式系统中,不包括支持
perror的设施。您的代码是否向perror提供信息? -
我很确定
perror()与任何其他打印功能一样可能成功 - 它不应该分配内存。显然,如果没有 stderr,那么您就无法通知用户它出错了。但这听起来像是一个没有标准 I/O 的嵌入式系统,在这一点上,所有关于处理错误的赌注都落空了。 C 作为一种语言当然还在嵌入式中使用,但你可能根本没有“printf”和“perror”类型的函数。
标签: c++ c error-handling