gpt4 book ai didi

c++ - 了解哪个 Mac 进程正在加载我的库框架

转载 作者:太空宇宙 更新时间:2023-11-04 12:15:48 28 4
gpt4 key购买 nike

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

在 Windows 中,我只需调用 GetModuleFileName 并将 processID 设置为 NULL,它就会返回父进程。我想在 Mac 上做同样的事情。

谢谢!

最佳答案

您可以使用 sysctl(CTL_KERN, KERN_PROC ...),如 MacOSX Guru 中所述页面。

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

另见 this code它会检索您需要的所有结构。

关于c++ - 了解哪个 Mac 进程正在加载我的库框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7761893/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com