gpt4 book ai didi

objective-c - 从进程 ID 获取 CPU 信息

转载 作者:搜寻专家 更新时间:2023-10-30 19:48:45 26 4
gpt4 key购买 nike

如果有人可以帮助我,那就太好了:)

这似乎是一个艰难的过程。从进程 ID 开始,我需要能够抓取:

  1. 进程占用的 CPU 百分比,单位为 %
  2. 进程使用 CPU 多长时间

这需要用 Cocoa/Objective-C 或 C 编写。它还需要通过 Snow Leopard 在 Tiger 上工作。

谢谢!

最佳答案

一种粗略的方法是产生一个 popen 命令并从 ps 获取一些输出。

我是这样的:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

void get_process_info(int pid) {
char ps_cmd[256];
sprintf(ps_cmd, "ps -O %%cpu -p %d", pid); // see man page for ps
FILE *fp = popen(ps_cmd, "r");
if (fp) {
char line[4096];
while (line == fgets(line, 4096, fp)) {
if (atoi(line) == pid) {
char dummy[256];
char cpu[256];
char time[256];

// PID %CPU TT STAT TIME COMMAND
// 32324 0,0 s001 S+ 0:00.00 bc

sscanf(line, "%s %s %s %s %s", dummy, cpu, dummy, dummy, time);
printf("%s %s\n", cpu, time); // you will need to parse these strings

pclose(fp);
return;
}
}
pclose(fp);
}
}

int main() {
get_process_info(32324);
return 0;
}

关于objective-c - 从进程 ID 获取 CPU 信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3505241/

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