Linux内核参数是用空格(0x20)还是NUL(0x0)分隔的?

Linux内核参数是用空格(0x20)还是NUL(0x0)分隔的?

我以为是NUL。但是今天写剧本的时候,我发现是空格。可以配置吗?还是只是我的记忆错了?

答案1

也许这导致了你的记忆混乱:

/proc/cmdline(即内核本身的命令行参数)中,参数由 0x20 分隔。

/proc/进程号/cmdline(即各个用户进程的命令行参数),参数之间用 0x00 分隔。

答案2

假设您正在谈论它们在 中的显示方式/proc/cmdline,它们由空格分隔。它是不可配置的。

答案3

您可以在这里看到解析函数: https://elixir.bootlin.com/linux/v4.18.13/source/lib/cmdline.c#L199

/*
* Parse a string to get a param value pair.
* You can use " around spaces, but can't escape ".
* Hyphens and underscores equivalent in parameter names.
*/

相关内容