访问/ proc时触发哪个内核函数?

哪个函数负责/ proc创build的主要逻辑?

我必须达到这个问题中提到的行为。 是/ proc目录dynamic生成每个请求?

我想有一个函数循环通过任务列表并创build相应的条目。 我正在寻找类似的东西。

我寻找使用create_proc_entry()函数的函数,但是我找不到那些突出的东西。

Solutions Collecting From Web of "访问/ proc时触发哪个内核函数?"

我想有一个函数循环通过任务列表并创建相应的条目。 我正在寻找类似的东西。

fs/proc/base.c中的proc_pid_readdir()函数fs/proc/base.c这样做的。

for循环创建所有/proc/PID条目。 iter.task是当前的task_struct指针

 int proc_pid_readdir(struct file *file, struct dir_context *ctx) { /* . . . */ for (iter = next_tgid(ns, iter); iter.task; iter.tgid += 1, iter = next_tgid(ns, iter)) { char name[PROC_NUMBUF]; int len; if (!has_pid_permissions(ns, iter.task, 2)) continue; len = snprintf(name, sizeof(name), "%d", iter.tgid); ctx->pos = iter.tgid + TGID_OFFSET; if (!proc_fill_cache(file, ctx, name, len, proc_pid_instantiate, iter.task, NULL)) { put_task_struct(iter.task); return 0; } } ctx->pos = PID_MAX_LIMIT + TGID_OFFSET; return 0; } 

实际上每个模块自己处理它的proc文件。 使用Linux的源代码,你可以在proc中找到单独的文件名。 这样,你应该能够找到感兴趣的功能的地方。