进程启动时如何从PID获取进程路径?

时间:2018-12-26 12:46:18

标签: macos process bsd

在macOS X中,我正在监视所有进程启动事件。 当进程启动时,我从内核获取PID。 并使用该PID在用户模式下检索完整的进程路径。

我仅将proc_pidpath()用于进程启动事件。如果我尝试获取已经运行的进程的进程路径,那么它将起作用。

 #define MAX_PROCESS_PATH_LEN 1024
 int iReturn;
 char ProcessPath[MAX_PROCESS_PATH_LEN];
 iReturn = proc_pidpath(processID , processPath , sizeof(ProcessPath));
 if(0 == iReturn)
 {
      // proc_pidpath failed
 }
 else
 {
      NSLog(@"My Process Path = %s" , ProcessPath);
 }

输入任务:  从/Application/Chess.app

启动Chess.app

实际输出: 我的流程路径= / sbin / launchd

预期输出为/Application/Chess.app或/Applications/Chess.app/Contents/MacOS/Chess。

有人可以帮助我如何在派生进程但未初始化的情况下获取进程路径吗?

0 个答案:

没有答案