Alle Themen im aktuellen Prozess auflisten?

Ich versuche, einen Syscall zu implementieren, mit dem ich die Anzahl der Threads für den aktuellen Prozess ermitteln kann. Ich bin neu im Linux-Kernel und daher verstehe ich es nur begrenzt.

Momentan versuche ich, die gesamte Datei zu durchlaufentask_structs, und vergleichen Sie die PID ihres Thread-Gruppenleiters mit der PID des aktuellen Thread-Gruppenleiters:

// ...
int nthreads = 0;
struct task_struct *task_it;
for_each_process(task_it) {
    if (task_it->group_leader->pid == current->group_leader->pid) {
        nthreads++;
    }
}
// ...

Dies scheint jedoch nicht zu funktionieren (ein schneller Test, der einige Pthreads erzeugt, gibt es immer noch1. Was ist mitgroup_leader ist allen Threads im selben Prozess gemeinsam?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage