Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.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
C 读取Linux内核参数_C_Linux_Kernel - Fatal编程技术网

C 读取Linux内核参数

C 读取Linux内核参数,c,linux,kernel,C,Linux,Kernel,有没有一种方法可以在引导时找到传递给内核(/proc/cmdline)的参数,而不读取proc中的任何文件?我可能有一个进程需要在装入/proc之前读取引导参数。我确信有更好的方法,但我确实在dmesg中看到了它,我想更好地理解您的需求,因为您几乎可以保证装入/proc。装载/proc是init首先要做的事情之一 UbuntuWithUpstart:/etc/init/mountall.conf,是启动事件的一部分 Fedora with initscripts:/etc/rc.sysinit,

有没有一种方法可以在引导时找到传递给内核(/proc/cmdline)的参数,而不读取proc中的任何文件?我可能有一个进程需要在装入/proc之前读取引导参数。

我确信有更好的方法,但我确实在dmesg中看到了它,我想更好地理解您的需求,因为您几乎可以保证装入
/proc
。装载
/proc
init
首先要做的事情之一

UbuntuWithUpstart:
/etc/init/mountall.conf
,是
启动
事件的一部分
Fedora with initscripts:
/etc/rc.sysinit
,它做的第二件事(在设置主机名之后)

您的代码几乎肯定会在此之后运行


在替换
init
时,请看一下
init
是如何实现的


似乎有一个名为
boot\u command\u line

的全局符号,内核似乎将引导行上的任何内容作为arg传递给init,除非有“=”或“.”


哼。。。我认为这也行不通。我希望C库中有一个函数可以提供这些信息。也许我应该在这个问题上加上C标记。需要此信息的进程将作为init运行(这将是第一个进程),并且需要在exec()启动真正的init进程之前对信息进行消化。@tMC:首先考虑。使您的程序装载
/proc
:-)@米克尔-可能也有。但我希望以不同的方式对启动过程进行分组。我只是希望libs中有一个函数可以通过ctypes执行,或者有一个接口可以在启动过程之前fnclt。@robin-是的,大部分都已经编写好了,我只是讨厌shebang是硬代码,我正在用中断语言(python)重写init。我想将路径作为引导选项传递给python中断器,但由于init将是一个python脚本,所以我需要知道中断器的路径在哪里,然后才能执行()my init process.LOL,python作为一种中断语言-这让我很高兴:),我相信init会将它们设置为一个环境变量。