Как называется исполняемый файл из / proc / [PID] / cmdline? - PullRequest
0 голосов
/ 07 февраля 2019

Согласно странице man для / proc / [PID] / cmdline: этот файл только для чтения содержит полную командную строку для процесса, в котором аргументы командной строки представляют собой набор строк, разделенных нулевыми байтами ('\0 '), с последующим нулевым байтом после последней строки.

Я пишу программу на C, которая будет принимать конкретный PID, и я хочу получить имя исполняемого файла, открыв файл cmdline.Однако я не совсем уверен, что означает содержимое, в частности, где будет точно находиться имя исполняемого файла?

Например, запуск / proc / 4404 / cmdline обеспечивает следующий вывод:

/usr/bin/whoopsie-f

Еще пара примеров:

/sbin/init/splash
/lib/systemd/systemd--user
/usr/bin/dbus-daemon--system--address=systemd:--nopidfile--systemd-activation--syslog-only

Как мне точно расшифровать этот вывод?Точно ли имя исполняемого файла находится в фиксированном месте (если да, укажите, пожалуйста, где?).Я также видел другие потоки, которые запускают команду: «readfile exe», но я пытаюсь сделать все это в C и, в частности, мне нужно использовать файл cmdline для доступа к имени исполняемого файла.

Спасибо!

...