是否有 C API 可以获取:
- 系统范围内当前使用的文件描述符
- 当前进程当前使用的文件描述符
对于当前进程计数,您可以使用getrlimit
获取文件描述符限制,然后迭代从 0 到该限制的所有整数并尝试调用fcntl
与F_GETFD
命令。它只会在实际打开的文件描述符上成功,让您对它们进行计数。
Edit:我现在有一个更好的方法来做到这一点。得到后rlimit
,制作一个大数组struct pollfd
(如果可能的话尽可能大;否则你可以将其分解为多个运行/调用)范围内的每个 fd 和events
成员设置为0。调用poll
在超时为 0 的数组上,查找POLLNVAL
标志在revents
对于每个成员。这将告诉您在一组潜在的巨大 fd 中哪些对于单个系统调用无效,而不是每个 fd 一个系统调用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)