В 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.
Может кто-нибудь помочь мне, как получить путь к процессу, когдапроцесс является форком, но может быть не инициализирован?