Linux filp_open错误号定义

时间:2014-08-27 02:32:00

标签: linux

我对filp_open函数有疑问:

我可以从IS_ERR函数中获取错误编号,但我不明白错误编号的含义。

哪里可以找到filp_open错误编号定义?

1 个答案:

答案 0 :(得分:3)

您不应该使用filp_open在内核模式下读/写文件。出于(明显的)安全原因。其他原因可以找到in this answerthis answer(取自this comment)。 official documentation也建议不要使用flp_open

  

如果你真的需要,这是从kernelspace打开文件的助手。但一般来说你不应该这样做,所以请继续前进,没有什么可看的......

错误代码定义

内核在内核空间中使用与用户空间中相同的错误号(errno)。因此,正如OmnipotentEntity指出的那样,您可以看到man errno以获取有关错误通常含义的参考。

查看filp_open的实际实施及其可能的错误来源(例如file_open_namebuild_open_flags)也很有帮助。

请注意,IS_ERR 会返回错误,但只返回提供的指针是否为错误值。在PTR_ERR为真的情况下,您必须使用IS_ERR从指针中检索错误值。例如:

fptr = filp_open(...)

if (IS_ERR(fptr)) {
    printk("%d\n", PTR_ERR(fptr));
}