[英]Which block of code in the kernel writes to /proc when new process is created/deleted?
[英]Which kernel function is triggered when /proc is accessed?
哪个函数负责/ proc创建的主要逻辑?
我必须实现此问题中提到的行为。 / proc目录是否根据请求动态生成?
我想有一个遍历任务列表并创建相应条目的函数。 我正在寻找类似的东西。
我寻找了使用create_proc_entry()函数的函数,但是找不到突出的东西。
我想有一个遍历任务列表并创建相应条目的函数。 我正在寻找类似的东西。
fs/proc/base.c
中的proc_pid_readdir()
函数正是这样做的。
该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中grep查找各个文件名。 这样,您应该能够找到感兴趣功能的位置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.