哪个函数负责/ proc创build的主要逻辑?
我必须达到这个问题中提到的行为。 是/ proc目录dynamic生成每个请求?
我想有一个函数循环通过任务列表并创build相应的条目。 我正在寻找类似的东西。
我寻找使用create_proc_entry()函数的函数,但是我找不到那些突出的东西。
我想有一个函数循环通过任务列表并创建相应的条目。 我正在寻找类似的东西。
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中找到单独的文件名。 这样,你应该能够找到感兴趣的功能的地方。