知道哪个Mac进程正在加载我的库框架

Know which Mac process is loading my library framework

本文关键字:加载 我的 框架 进程 Mac      更新时间:2023-10-16

我创建了一个c++库,我将其编译为。framework,以便其他应用程序可以调用它。我想从库中获得调用.app文件的路径。我该怎么做呢?

在Windows中,我简单地调用GetModuleFileName与processID为NULL,它返回父进程。我想在Mac上做同样的事情。

谢谢!

您可以使用MacOSX Guru页面上的sysctl(CTL_KERN, KERN_PROC ...)文档。

int getprocessname( pid_t inPID, char *outName, size_t inMaxLen)
{
struct kinfo_proc info;
size_t length = sizeof(struct kinfo_proc);
int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, inPID };
if (sysctl(mib, 4, &info, &length, NULL, 0) < 0)
    return -1 ;
else
    strncpy(outName, info.kp_proc.p_comm, inMaxLen) ;
return 0    ;
}