我想知道函数“sys_access”的代码,但我只能找到它的声明:(在include \ Syscalls.h中)
asmlinkage long sys_access(const char __user *filename, int mode);
我猜它是由Assemble编码的,但我怎么能找到呢? 顺便说一下,我使用source insight来读取linux内核......它无法在文件* .S中找到符号。是否有更有效的工具来读取Linux内核?
答案 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/*