在Linux内核模块中,在按文件描述符计算绝对路径时,使用 fcheck()或 fcheck_files()。我没有获得有关这些功能的更多信息。我需要知道哪种功能适合哪种情况。当这些功能失败?哪里可以找到有关此类功能的文档?如上所述here,
...要查找给定fd的文件结构,读者必须使用fcheck()或fcheck_files()API ....
但是没有提供关于何时以及为什么应该使用哪种功能的信息。
提前致谢!
答案 0 :(得分:1)
fcheck()
在include/linux/fdtable.h, line 90中被定义为预处理器宏:
#define fcheck(fd) fcheck_files(current->files, fd)
并且fcheck_files()
被定义为include/linux/fdtable.h, line 77中的函数:
static inline struct file * fcheck_files(struct files_struct *files, unsigned int fd)
{
struct file * file = NULL;
struct fdtable *fdt = files_fdtable(files);
if (fd < fdt->max_fds)
file = rcu_dereference_check_fdtable(files, fdt->fd[fd]);
return file;
}
它们不是两个功能,因此不需要混淆适合哪个功能。
fcheck()
功能用于
检查指定的fd是否有打开的文件。