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.
*/

관련 정보