Программно получить родительский pid другого процесса?
Я попробовал google, но нашел getppid(), который получает родительский pid текущего процесса.
Мне нужно что-то вроде getppid(some_other_pid), есть ли такая вещь? В основном принимает pid какого-то процесса и возвращает родительский процесс pid.
Ответ 1
Я думаю, что проще всего было бы открыть "/proc" и проанализировать содержимое.
Вы найдете ppid как 4-й параметр/proc/pid/stat
Ответ 2
или из оболочки unix вы можете попробовать ps -p <child_pid> -o ppid=
Ответ 3
Я опаздываю на вечеринку на 7 лет, но для тех, кто может наткнуться на этот вопрос, вот альтернативное решение для OS X. Другие ответы, размещенные здесь, верны, и sysctl() выполнит эту работу, но вы также можете использовать proc_pidinfo, чтобы получить много полезной информации о процессе.