Lio*_*lan 2 c linux linux-kernel
errno
内核领域中的等价物是什么?更准确地说,我如何检查发生了什么错误,例如在使用类似的函数时kmalloc()
?
小智 6
Linux 内核使用几种不同的方法来处理错误情况。与 C 用户空间程序不同,函数不会将其错误代码存储在全局变量中,而是直接返回值。您通常会看到这是按如下方式完成的:
0
在成功和-ESOMETHING
失败时返回。IS_ERR()
返回值,您可以检查是否发生了错误。随着PTR_ERR()
您可以提取错误代码,这再次被否定。不幸的是,该kmalloc()
函数没有使用这些样式。它NULL
在失败时返回而不给你一个特定的错误代码。