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

发布于 2024-10-28 04:27:31 字数 286 浏览 5 评论 0原文

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

asmlinkage long sys_access(const char __user *filename, int mode);< /code>

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

I wonder to find out the codes of the function "sys_access", but i could only find it`s declare:(in include\Syscalls.h)

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

i guess it coded by Assemble, but how could i found that?
by the way , i use the source insight to read the linux kernel...it cannot find the symbol in file *.S . Is there more effective tools to read the linux kernel?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一百个冬季 2024-11-04 04:27:31

我假设您已经下载了内核源代码(不仅仅是标头)。这个函数是用 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

gt; grep -r "access" /usr/src/linux-2.6/*

I assume that you have already downloaded kernel sources (not only headers). This function is implemented in C and placed in 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);
}

There are a bunch of methods to search trough files contents. In simple cases I prefer the usage of grep:

gt; grep -r "access" /usr/src/linux-2.6/*
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文