如何在linux内核中找到“sys_access”等函数的实现

时间:2011-03-28 08:58:09

标签: linux linux-kernel

我想知道函数“sys_access”的代码,但我只能找到它的声明:(在include \ Syscalls.h中)

asmlinkage long sys_access(const char __user *filename, int mode);

我猜它是由Assemble编码的,但我怎么能找到呢? 顺便说一下,我使用source insight来读取linux内核......它无法在文件* .S中找到符号。是否有更有效的工具来读取Linux内核?

1 个答案:

答案 0 :(得分:3)

我假设您已经下载了内核源代码(不仅是头文件)。此函数在C中实现并放在fs / open.c中:

SYSCALL_DEFINE3(faccessat, int, dfd, const char __user *, filename, int, mode)
{
     ...
}

SYSCALL_DEFINE2(access, const char __user *, filename, int, mode)
{
        return sys_faccessat(AT_FDCWD, filename, mode);
}

有很多方法可以搜索文件内容。在简单的情况下,我更喜欢使用grep

$> grep -r "access" /usr/src/linux-2.6/*
相关问题