在 C 中使用 "err" 进行错误处理:我应该使用什么代码?
Error handling with "err" in C: What codes should I use?
err
和 errx
的手册页说明了以下语法:
void err(int eval, const char *fmt, ...);
void errx(int eval, const char *fmt, ...);
显然 const char *fmt
是格式字符串,...
包含它的参数(就像 printf
)。我知道 eval
是您分配给错误的代码。由于手册页没有说明有关 eval
参数的任何更具体的内容,我想知道:
是否有规则/约定,指定应为特定错误分配哪些错误代码,或者它是编写代码的程序员的选择,以编写他们认为必要的任何 eval
值?
来自我的 Ubuntu (GNU/Linux) 系统的手册页:
The err()
, verr()
, errx()
, and verrx()
functions do not return, but exit with the value of the argument eval
.
所以这是一个您要传递给 exit
的值。
如果要便携,C定义了EXIT_SUCCESS
和EXIT_FAILURE
。
也就是说,返回 0 到 127 之间的数字应该没有问题,0 表示成功。这些数字的含义取决于您,但通常会越来越严重。例如,grep
returns 如果找到匹配项则为 0,如果未找到匹配项则为 1,如果发生错误则为 2。
err
和 errx
的手册页说明了以下语法:
void err(int eval, const char *fmt, ...);
void errx(int eval, const char *fmt, ...);
显然 const char *fmt
是格式字符串,...
包含它的参数(就像 printf
)。我知道 eval
是您分配给错误的代码。由于手册页没有说明有关 eval
参数的任何更具体的内容,我想知道:
是否有规则/约定,指定应为特定错误分配哪些错误代码,或者它是编写代码的程序员的选择,以编写他们认为必要的任何 eval
值?
来自我的 Ubuntu (GNU/Linux) 系统的手册页:
The
err()
,verr()
,errx()
, andverrx()
functions do not return, but exit with the value of the argumenteval
.
所以这是一个您要传递给 exit
的值。
如果要便携,C定义了EXIT_SUCCESS
和EXIT_FAILURE
。
也就是说,返回 0 到 127 之间的数字应该没有问题,0 表示成功。这些数字的含义取决于您,但通常会越来越严重。例如,grep
returns 如果找到匹配项则为 0,如果未找到匹配项则为 1,如果发生错误则为 2。