我认为不存在便携式解决方案。在linux上,我们查看/ proc // task /,在darwin上我们使用task_threads()。那FreeBSD怎么样?
答案 0 :(得分:0)
似乎kvm_getprocs就是答案。
答案 1 :(得分:0)
melisgl是正确的 - 但是只有当你使用默认的线程实现时,进程的线程才是“内核可见的”。 (还有其他一些实现,比如pth,这可能不是真的。)
使用KERN_PROC_PID | KERN_PROC_INC_THREAD(未经测试),使用kvm_getprocs()计算进程的内核可见线程。但是使用该功能可能需要root权限:(