在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。
有人可以帮助我如何在派生进程但未初始化的情况下获取进程路径吗?