相关疑难解决方法(0)

如何找到 Linux 内核系统调用的实现?

我试图mkdir通过查看内核源代码来了解一个函数是如何工作的。这是尝试了解内核内部结构并在各种功能之间导航。我知道mkdirsys/stat.h. 我找到了原型:

/* Create a new directory named PATH, with permission bits MODE.  */
extern int mkdir (__const char *__path, __mode_t __mode)
     __THROW __nonnull ((1));
Run Code Online (Sandbox Code Playgroud)

现在我需要看看这个函数是在哪个 C 文件中实现的。从源目录,我试过

ack "int mkdir"
Run Code Online (Sandbox Code Playgroud)

其中显示

security/inode.c
103:static int mkdir(struct inode *dir, struct dentry *dentry, int mode)

tools/perf/util/util.c
4:int mkdir_p(char *path, mode_t mode)

tools/perf/util/util.h
259:int mkdir_p(char *path, mode_t mode);
Run Code Online (Sandbox Code Playgroud)

但它们中没有一个与 中的定义匹配sys/stat.h

问题

  1. 哪个文件有mkdir实现?
  2. 有了上面这样的函数定义,我怎么能找出哪个文件有实现呢?内核在定义和实现方法时是否遵循任何模式?

注意:我正在使用内核2.6.36-rc1

source system-calls linux-kernel

376
推荐指数
7
解决办法
5万
查看次数

标签 统计

linux-kernel ×1

source ×1

system-calls ×1