2015-08-26 44 views
5

如何在FreeBSD中列出當前進程中的所有線程?或者至少,得到運行的線程數量。列出全部主題

我發現Linux系統調用pstat_getproc,它返回一個包含線程數pst_nlwps的結構體。我在FreeBSD上尋找類似的東西。

或者也許有像/dev/fd但是對於線程。

任何我可以用來得到關於有多少其他線程正在運行的某種想法。

我希望能夠以編程方式在C中執行此操作,而不是使用現有的應用程序。

+0

你確定'pstat_getproc'是'Linux'系統調用嗎? –

+0

也許這就是你要找的東西? [libprocstat](https://www.freebsd.org/cgi/man.cgi?query=libprocstat&sektion=3&apropos=0&manpath=FreeBSD%2010.0-RELEASE)。具體來說,'procstat_getprocs' –

回答

2

使用procstat(1)

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

取決於libprocstat(3)

+0

對不起,我應該澄清。我不想查找命令行工具,我希望以編程方式在C中執行此操作。 – user2868331

+1

@ user2868331查看/usr/src/usr.bin/procstat/procstat_threads.c。 – xcah