Избройте всички нишки

Как мога да изброя всички нишки в текущия процес във FreeBSD? Или поне накарайте броя на стартираните нишки.

Намерих системното извикване на Linux pstat_getproc, което връща структура, съдържаща pst_nlwps, броя на нишките. Търся нещо подобно на това във FreeBSD.

Или може би има нещо като /dev/fd но за нишки.

Всичко, което мога да използвам, за да получа някаква представа колко други нишки се изпълняват.

Искам да мога да направя това програмно в C, без да използвам съществуващо приложение.


person user2868331    schedule 26.08.2015    source източник
comment
Сигурни ли сте, че pstat_getproc е системно повикване Linux?   -  person Arkadiusz Drabczyk    schedule 26.08.2015
comment
Може би това е, което търсите? libprocstat. По-конкретно, procstat_getprocs   -  person Christopher Schneider    schedule 27.08.2015
comment
Вижте също stackoverflow.com/questions/3475750/   -  person Raedwald    schedule 05.06.2018


Отговори (1)


Използвайте procstat(1), напр.

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

което зависи от libprocstat(3).

person xcah    schedule 26.08.2015
comment
Съжалявам, трябваше да изясня. Не търся инструмент за команден ред, искам да го направя програмно в C. - person user2868331; 26.08.2015
comment
@user2868331Вижте /usr/src/usr.bin/procstat/procstat_threads.c. - person xcah; 27.08.2015