gpt4 book ai didi

macos - 确定流程的架构

转载 作者:行者123 更新时间:2023-12-04 11:46:02 24 4
gpt4 key购买 nike

是否有一种编程方式来找出另一个进程在 Mac OS X 10.5 及更高版本上运行的架构?

检查进程的镜像文件不是解决方案,因为镜像可能包含多个体系结构,并且在 arch(1) 和“在 Rosetta 中打开”和“以 32 位模式打开”复选框之间,无法分辨单独的架构实际运行的图像。

最佳答案

您可以在可用的操作系统上使用 NSRunningApplication ,并在不可用时退回到 sysctl 吗?我认为 sysctl 的东西不像大多数东西那样是可支持的 API,但如果你只在旧的操作系统上使用它,你应该没问题。

试试这个来获取进程的 CPU 类型:

   cpu_type_t  cpuType
size_t cpuTypeSize;
int mib[CTL_MAXNAME];
size_t mibLen;
mibLen = CTL_MAXNAME;
err = sysctlnametomib("sysctl.proc_cputype", mib, &mibLen);
if (err == -1) {
err = errno;
}
if (err == 0) {
assert(mibLen < CTL_MAXNAME);
mib[mibLen] = pid;
mibLen += 1;

cpuTypeSize = sizeof(cpuType);
err = sysctl(mib, mibLen, &cpuType, &cpuTypeSize, 0, 0);
if (err == -1) {
err = errno;
}
}

并测试 CPU_ARCH_ABI64检查 64 位。

关于macos - 确定流程的架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1350181/

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