nebo z unixového shellu můžete zkusit ps -p <child_pid> -o ppid=
Na večírek mám 7 let zpoždění, ale pro každého, kdo by mohl narazit na tuto otázku, je zde alternativní řešení pro OS X. Ostatní zde zveřejněné odpovědi jsou správné a sysctl()
úlohu udělá, ale můžete také použít proc_pidinfo
získat mnoho užitečných informací o procesu.
#include <libproc.h>
int getppid(const pid_t pid)
{
proc_bsdinfo info;
proc_pidinfo(pid, PROC_PIDTBSDINFO, 0, &info, sizeof(info));
return info.pbi_ppid;
}
Je zřejmé, že je vyžadována další kontrola chyb.
Myslím, že nejjednodušší by bylo otevřít "/proc" a analyzovat obsah.
ppid najdete jako čtvrtý parametr /proc/pid/stat
V C má libproc get_proc_stats
funkce pro analýzu tohoto souboru:viz příklad, jak můžete získat rodičovský PID s podřízeným PID.
Můžete se podívat na sysctl()
systémové volání a tento odkaz.
Linux:zkopírujte a vytvořte cílový adresář, pokud neexistuje
Jaký je nejlepší způsob distribuce binární aplikace pro Linux?