errno错误宏

https://blog.csdn.net/a8039974/article/details/25830705

编写Linux驱动,看见返回值为 “return -EINVAL”

EINVAL 是定义在 errno.h 中的一个宏定义,它定义了一个整形变量(此处值为22),是错误代码的一个取值。EINVAL表示 无效的参数,即为 invalid argument ,包括参数值、类型或数目无效等。

可见,EINVAL是POSIX.1规范中的一个宏,系统定义了一系列这样的错误代码,通过这样的宏可为 errno 这个全局变量设置不同的值,即可表示不同类型的系统错误。

那为什么又在EINVAL前加一个负号呢?

通常,UNIX系统中,对系统API调用时如果返回0表示函数成功执行,返回-1则表示函数执行失败;另一种错误返回方式就是通过返回不同的值来表征错误的类型或程序退出的状态,即可以通过返回不同的负值表征不同的错误的类型。

这些错误码都是定义的正值,即在正的错误码前加一个负号,在错误处理时当返回值小于0时,我们再进一步检测返回值的错误类型,因此就出现了“ return -EINVAL”。

EPERM: operation not permitted

ENOMEM 内存溢出

posted @ 2020-02-29 21:04  friedCoder  阅读(430)  评论(0)    收藏  举报