macos - 进程启动时如何从PID获取进程路径?
问题描述
在 macOS X 中,我正在监视所有进程启动事件。当进程启动时,我从内核获取 PID。并使用该 PID 我正在用户模式下检索完整的进程路径。
我仅将 proc_pidpath() 用于进程 lauch 事件。如果我尝试获取已经运行的进程的进程路径,它可以工作。
#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。
当进程是分叉但可能未初始化时,谁能帮我获取进程路径?
解决方案
推荐阅读
- r - 从 excel 文件的大型数据集中删除/删除所有空白单元格/空值
- python - 获取 TypeError: must be str, not list 尝试与聊天机器人交谈时,您可以在下面找到代码
- c# - 尝试获取 BottomNavigationView 时使用 FindViewById<> 返回 null
- mysql - 在mysql中找到多个字段的相同记录
- gatsby - 如何解决 Windows 中 gatsby 的安装后错误?
- javascript - 在不同的模块(Node.js)中使用 Socket.io 发射
- vba - 从 iframe 获取表格或从第一个 iframe 获取所有内容
- c++ - push_back 到循环列表
- python - 在python中将XML数据解析为二维数组
- mongodb - mongodb:OperationFailure:查询分片 findAndModify 必须包含分片键