【问题标题】:How is /proc/<pid>/cmdline related to the argv variable of a process?/proc/<pid>/cmdline 与进程的 argv 变量有何关系?
【发布时间】:2020-08-16 21:19:40
【问题描述】:

当我运行一个进程和 argv[0] 的内容时,这也会改变 /proc//cmdline 的内容。现在我检查了 fs/proc/cmdline.c 中的内核代码,那里的 cmdline_proc_show 函数似乎从全局 saved_command_line 变量中获取了它的内容。但是我没有找到 saved_command_line 与 argv 数组的关系。有人知道吗?

【问题讨论】:

    标签: linux argv procfs


    【解决方案1】:

    文件/proc/cmdline 与内核命令行和来自boot_params 的信息相关。

    对于用户进程,子目录中有cmdline 文件,以进程ID /proc/&lt;pid&gt;/cmdline 命名;外壳示例:cat /proc/$$/cmdline。一系列结构指针导致进程命令行参数;详情见proc_pid_cmdline_read()

    注意:版本之间的某些符号可能不同

    【讨论】:

    • 对了,所以 fs/proc/cmdline.c 中的 cmdline_proc_show 处理 /proc/cmdline,而 fs/proc/base.c 中的 proc_pid_cmdline 处理 /proc//cmdline。这只是访问进程虚拟内存中的 argv 变量。太棒了,非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-24
    • 2010-09-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多