我想使用errno库来定义项目(c语言)函数的返回。我想知道一些事情......
我会做这样的事情:
#include <errno.h>
int myfunction (void)
{
int res;
/*Some actions....*/
if(success)
res = 0;
else if (fail)
res = -EIO;
return res;
}
我喜欢始终初始化我的局部变量,我想知道使用errno值(可能是0)的变量的默认值是什么?但我真的不想默认设置:“SUCCESS”我更喜欢“失败”值。你对此有何看法(或规则)?
先谢谢。
答案 0 :(得分:5)
如果您的问题是errno
的默认值,没有错误值,以及errno
中返回错误状态的所有函数,则该值为0
,如您所愿。< / p>
但是错误代码通常不会作为负值返回给调用者,就像你在代码段中一样。
答案 1 :(得分:2)
没有将EGENERIC
/ EUNKNOWN
值定义为一般错误指示符。
您有以下选择:
0
,表示成功。errno
定义的值集合中使用特定于函数的默认值。errno
返回负值,则使用1
作为一般错误值。errno
作为常规错误指示符。 对于最后一个选项,还在函数内设置 -1
。
POSIX系统更新
如果要使用为errno
定义的值,除了POSIX explicitly states之外,没有可移植的方法可以使用除errno
之外的任何其他值:
在程序中只应使用宏名称 * 1 ,因为未指定错误编号的实际值。
* 1此引用0
宏,as listed here.