Согласно странице 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 для доступа к имени исполняемого файла.
Спасибо!