【发布时间】:2026-01-01 02:40:01
【问题描述】:
如何在 mac os 上通过已知进程名称获取进程?
【问题讨论】:
-
您应该将代码放入答案中,并对其进行格式化以使其更易于阅读。然后接受那个答案
如何在 mac os 上通过已知进程名称获取进程?
【问题讨论】:
刚刚重新格式化了 Haley 的答案:
// Return YES if given name process in process list . Otherwise return NO
bool IsInBSDProcessList(char *name) {
assert( name != NULL);
kinfo_proc *result;
size_t count = 0;
result = (kinfo_proc *)malloc(sizeof(kinfo_proc));
if(GetBSDProcessList(&result,&count) == 0) {
for (int i = 0; i < count; i++) {
kinfo_proc *proc = NULL;
proc = &result[i];
if (strcmp(name, proc->kp_proc.p_comm) == 0) {
free(result);
return true;
}
}
}
free(result);
return false;
}
【讨论】:
malloc() 是多余的:在堆栈上分配 kinfo_proc 并获取指针也可以。
你的问题比较模糊。您能否定义“获取流程”的含义?
一种方法(取决于您的定义):在 Applications/Utilities 中启动 Activity Monitor 应用,然后在列表中查找进程名称。
【讨论】:
也许
ps -eaf
从控制台
【讨论】: