如果有人可以请帮助我,那就太好了:)
这似乎是一个艰难的过程。从进程 ID 开始,我需要能够抓取:
- 进程占用的 CPU 百分比,单位为 %
- 进程使用 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/