Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux内核如何创建/proc/$pid/maps文件?_C_Linux Kernel_Operating System_Kernel_System Calls - Fatal编程技术网

Linux内核如何创建/proc/$pid/maps文件?

Linux内核如何创建/proc/$pid/maps文件?,c,linux-kernel,operating-system,kernel,system-calls,C,Linux Kernel,Operating System,Kernel,System Calls,我正在做一些内存自省,这需要我知道proc/$pid/maps是如何创建的。我对第2750行中的代码感到有点困惑,我注意到这个结构中有一个映射的定义,但我想知道每个pid_项的哪个内核函数创建了映射文件。一个指向内核模块或代码块的链接就足够了。您对该链接做了一些奇怪的事情 点击几个定义可以看出文件是按需生成的: (至少对于普通mmu情况) 通常的问题是:为什么要问?/proc是一个虚拟文件系统。这些文件没有物理存储的支持,它们的内容是在您读取时生成的。从这个意义上说,这些文件永远不会被“创建”

我正在做一些内存自省,这需要我知道proc/$pid/maps是如何创建的。我对第2750行中的代码感到有点困惑,我注意到这个结构中有一个映射的定义,但我想知道每个pid_项的哪个内核函数创建了映射文件。一个指向内核模块或代码块的链接就足够了。

您对该链接做了一些奇怪的事情

点击几个定义可以看出文件是按需生成的:

(至少对于普通mmu情况)


通常的问题是:为什么要问?

/proc是一个虚拟文件系统。这些文件没有物理存储的支持,它们的内容是在您读取时生成的。从这个意义上说,这些文件永远不会被“创建”。我希望只使用内存内省输出在/proc/$pid/maps中的进程映射文件中看到的相同数据。