如何从进程 ID 中获取进程详细信息,例如应用程序名称和应用程序的真实路径?
我使用的是 Mac OS X。
最佳答案
如果您知道 PID,则很容易获取进程名称/位置,只需使用 proc_name 或 proc_pidpath 即可。看一下下面的示例,它提供了流程路径:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <libproc.h>
int main (int argc, char* argv[])
{
pid_t pid; int ret;
char pathbuf[PROC_PIDPATHINFO_MAXSIZE];
if ( argc > 1 ) {
pid = (pid_t) atoi(argv[1]);
ret = proc_pidpath (pid, pathbuf, sizeof(pathbuf));
if ( ret <= 0 ) {
fprintf(stderr, "PID %d: proc_pidpath ();\n", pid);
fprintf(stderr, " %s\n", strerror(errno));
} else {
printf("proc %d: %s\n", pid, pathbuf);
}
}
return 0;
}
关于macos - 从pid获取应用程序的真实路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7511864/