1

コンソール ベースのプロセス マネージャーを作成したいと考えています。最初のステップでは、実行中のプロセスのリストが必要だと思います。私はWindowsを使用しています。

4

3 に答える 3

1

MSDNでこの例を見ることができます。これも役立つかもしれません。

于 2012-04-04T15:59:11.940 に答える
1

CreateToolhelp32Snapshot関数を使用して、現在実行中のプロセスのスナップショットを作成できます。その後、Process32FirstProcess32Nextを使用して、このリストを列挙できます。

于 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 に答える