Как получить путь процесса из PID при запуске процесса? - PullRequest
0 голосов
/ 26 декабря 2018

В 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);
 }

Задача ввода: запустите Chess.app из /Application/Chess.app

Фактический вывод: My Process Path =/ sbin / launchd

Ожидаемый вывод: /Application/Chess.app или /Applications/Chess.app/Contents/MacOS/Chess.

Может кто-нибудь помочь мне, как получить путь к процессу, когдапроцесс является форком, но может быть не инициализирован?

...