2015-08-26 13 views
5

Wie kann ich alle Threads innerhalb des aktuellen Prozesses in FreeBSD auflisten? Oder zumindest die Anzahl der laufenden Threads.Alle Themen anzeigen

Ich fand den Linux-Systemaufruf pstat_getproc, der eine Struktur zurückgibt, die pst_nlwps die Anzahl der Threads enthält. Ich suche etwas ähnliches auf FreeBSD.

Oder vielleicht gibt es etwas wie /dev/fd aber für Threads.

Alles, was ich verwenden kann, um eine Vorstellung davon zu bekommen, wie viele andere Threads laufen.

Ich möchte dies programmgesteuert in C tun können, nicht mit einer vorhandenen Anwendung.

+0

Sind Sie sicher, dass 'pstat_getproc' ein' Linux'-Systemaufruf ist? –

+0

Vielleicht suchen Sie das? [libprocstat] (https://www.freebsd.org/cgi/man.cgi?query=libprocstat§ion=3&apropos=0&manpath=FreeBSD%2010.0-RELEASE). Insbesondere "Procstat_getprocs" –

Antwort

2

Verwendung procstat(1), zB

# procstat -t $(pgrep openvpn) 
    PID TID COMM    TDNAME   CPU PRI STATE WCHAN  
    537 100051 openvpn   -     0 120 sleep select 

, die auf libprocstat(3) abhängt.

+0

Sorry, ich hätte klarstellen müssen. Ich bin nicht auf der Suche nach einem Befehlszeilenprogramm, ich möchte es programmgesteuert in C. – user2868331

+1

@ user2868331Look at /usr/src/usr.bin/procstat/procstat_threads.c. – xcah