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