如何在 OS X 中使用 Objective C 获取父进程 ID?

Ser*_*gio 3 macos pid objective-c

我有某个进程的 PID,需要获取父进程 id。如何使用 Objective C 获得它?

ten*_*our 5

原始来源: http: //www.objectpark.net/parentpid.html

#include <sys/sysctl.h>

#define OPProcessValueUnknown UINT_MAX

int ProcessIDForParentOfProcessID(int pid)
{
    struct kinfo_proc info;
    size_t length = sizeof(struct kinfo_proc);
    int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, pid };
    if (sysctl(mib, 4, &info, &length, NULL, 0) < 0)
        return OPProcessValueUnknown;
    if (length == 0)
        return OPProcessValueUnknown;
    return info.kp_eproc.e_ppid;
}
Run Code Online (Sandbox Code Playgroud)

  • 应信用的信用:http://stackoverflow.com/questions/14162059/mac-osx-how-to-know-if-app-automatically-launched-at-session-startup-login (2认同)