如何在FreeBSD中列出當前進程中的所有線程?或者至少,得到運行的線程數量。列出全部主題
我發現Linux系統調用pstat_getproc
,它返回一個包含線程數pst_nlwps
的結構體。我在FreeBSD上尋找類似的東西。
或者也許有像/dev/fd
但是對於線程。
任何我可以用來得到關於有多少其他線程正在運行的某種想法。
我希望能夠以編程方式在C中執行此操作,而不是使用現有的應用程序。
如何在FreeBSD中列出當前進程中的所有線程?或者至少,得到運行的線程數量。列出全部主題
我發現Linux系統調用pstat_getproc
,它返回一個包含線程數pst_nlwps
的結構體。我在FreeBSD上尋找類似的東西。
或者也許有像/dev/fd
但是對於線程。
任何我可以用來得到關於有多少其他線程正在運行的某種想法。
我希望能夠以編程方式在C中執行此操作,而不是使用現有的應用程序。
使用procstat(1)
,如
# procstat -t $(pgrep openvpn)
PID TID COMM TDNAME CPU PRI STATE WCHAN
537 100051 openvpn - 0 120 sleep select
取決於libprocstat(3)
。
對不起,我應該澄清。我不想查找命令行工具,我希望以編程方式在C中執行此操作。 – user2868331
@ user2868331查看/usr/src/usr.bin/procstat/procstat_threads.c。 – xcah
你確定'pstat_getproc'是'Linux'系統調用嗎? –
也許這就是你要找的東西? [libprocstat](https://www.freebsd.org/cgi/man.cgi?query=libprocstat&sektion=3&apropos=0&manpath=FreeBSD%2010.0-RELEASE)。具體來說,'procstat_getprocs' –