我目前已经实现了一个简单的活动监视器来监视iOS上的所有运行进程.
要检索所有正在运行的进程的列表,我这样做:
size_t size;
struct kinfo_proc *procs = NULL;
int status;
NSMutableArray *killedProcesses = [[NSMutableArray alloc] init];
int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_ALL, 0 };
status = sysctl(mib, 4, NULL, &size, NULL, 0);
procs = malloc(size);
status = sysctl(mib, 4, procs, &size, NULL, 0);
// now, we have a nice list of processes
Run Code Online (Sandbox Code Playgroud)
如果我想了解有关特定流程的更多信息,我会这样做:
struct kinfo_proc *proc;
int mib[5] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, pidNum, 0 };
int count;
size_t size = 0;
// ask the proc size
if(sysctl(mib, …Run Code Online (Sandbox Code Playgroud)