在C中发出错误

时间:2012-03-09 11:15:33

标签: c

我一直在寻找在C程序中发布错误的标准方法。 最好的方法是什么:

  1. 使用fprintf到stderr并使用代码或
  2. 退出
  3. 用户错误功能,如here所述。
  4. 感谢。

2 个答案:

答案 0 :(得分:0)

取决于:(1)是可移植的,(2)特定于GNU / Linux但可能很方便。所以,这取决于你的程序的可移植性。

您还可以使用error功能,并将其便携版本与您的程序一起发送给其他平台的用户。然后,您必须将程序名称存储在main中的某个全局变量中。

答案 1 :(得分:0)

What is the best way:

 - use `fprintf()` to stderr and exit with a code or
 - Use `perror()` function as explained here.

首先,假设它们是不可恢复的错误,您应该退出这两种情况。您应该使用stdlib.h中的函数exit()退出:

exit( EXIT_FAILURE );

返回的错误代码对操作系统很重要,并且在所有操作系统中都不一样。

关于您的确切问题,使用fprintf()打印到stderr是正确的,您可以发出所有类型的错误(errno和其他人认可的错误),并为您提供自由产生自己的消息错误。使用perror()会生成无法更改的标准错误消息。