以编程方式获取给定的进程名称和ppid

时间:2015-08-21 07:43:25

标签: c linux macos pid bsd

在Linux和其他POSIX(?)操作系统上 - 如何获取给定(通过pid)进程的名称和父pid?目前我正在阅读/ proc,但OSX还没有。在OSX上,我使用的是libproc但在Linux上不起作用:

int ret = proc_pidpath (pid, pathbuf, sizeof(pathbuf));
if ( ret <= 0 ) {
    _dbg("   %s\n", strerror(errno));
    return false;
}

1 个答案:

答案 0 :(得分:1)

不幸的是,当谈到流程信息时,每个操作系统都会以不同的方式执行操作。如果您只需要了解用户启动的应用程序,请查看NSWorkspace类的runningApplicationWithProcessIdentifier:方法。否则,您将必须使用此处所述的特定于平台的sysctl:

https://developer.apple.com/legacy/library/qa/qa2001/qa1123.html#//apple_ref/doc/uid/DTS10001671

另请参阅此堆栈溢出问题:

Programmatically check if a process is running on Mac