首页 > 解决方案 > 在 OSX 中获取进程内存和 cpu 使用率

问题描述

我想获取 OSX 中每个进程消耗的内存。我试图调用下面的函数,但某些进程的“proc_pidinfo”调用失败。失败时返回值 0。

    int main(int argc, char **argv)
    {
        if(argc != 2) {
            puts("Usage: process_detail <pid>");
            return 1;
        }

        struct proc_taskallinfo info;

        int ret = proc_pidinfo(atoi(argv[1]), PROC_PIDTASKALLINFO, 0, (user_addr_t) &info, sizeof(struct proc_taskallinfo));
        printf("ret=%d, result=%s, rss memory: %lld\n", ret, (char *) info.pbsd.pbi_comm, info.ptinfo.pti_resident_size);

        return 0;
    }

我可以知道为什么某些 pid 的“proc_pidinfo”会失败。? 我可以实施任何其他方式吗?

先感谢您。

标签: cmacos

解决方案


推荐阅读