コンソール ベースのプロセス マネージャーを作成したいと考えています。最初のステップでは、実行中のプロセスのリストが必要だと思います。私はWindowsを使用しています。
質問する
4229 次
3 に答える
1
CreateToolhelp32Snapshot関数を使用して、現在実行中のプロセスのスナップショットを作成できます。その後、Process32FirstとProcess32Nextを使用して、このリストを列挙できます。
于 2012-04-04T16:02:32.283 に答える
0
さて、Mac でこれを行う方法を知りたかったので、これは問題ありません。
struct ProcessList {
pid_t value;
struct ProcessList *next;
};
struct ProcessList *getProcesses()
{
struct ProcessList *process = malloc(sizeof(struct ProcessList));
struct ProcessList *next = process;
ProcessSerialNumber psn = { 0, kNoProcess };
GetProcessPID(&psn, &process->value);
while (noErr == GetNextProcess(&psn)) {
pid_t pid;
if (noErr == GetProcessPID(&psn, &pid)) {
next = next->next = malloc(sizeof(struct ProcessList));
next->value = pid;
}
}
next->next = NULL;
return process;
}
明らかに、プロセス リストの NULL をヒットするまで、実行中のプロセスのリンクされたリストが返されます。
于 2012-04-04T16:01:50.240 に答える