从 C 代码获取当前使用的文件描述符的计数

2024-04-18

是否有 C API 可以获取:

  1. 系统范围内当前使用的文件描述符
  2. 当前进程当前使用的文件描述符

对于当前进程计数,您可以使用getrlimit获取文件描述符限制,然后迭代从 0 到该限制的所有整数并尝试调用fcntlF_GETFD命令。它只会在实际打开的文件描述符上成功,让您对它们进行计数。

Edit:我现在有一个更好的方法来做到这一点。得到后rlimit,制作一个大数组struct pollfd(如果可能的话尽可能大;否则你可以将其分解为多个运行/调用)范围内的每个 fd 和events成员设置为0。调用poll在超时为 0 的数组上,查找POLLNVAL标志在revents对于每个成员。这将告诉您在一组潜在的巨大 fd 中哪些对于单个系统调用无效,而不是每个 fd 一个系统调用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 C 代码获取当前使用的文件描述符的计数 的相关文章

随机推荐

  • Android:将文本左对齐并将文本视图置于其父视图中

    你好 我面临一个小问题 我使用 GRAVITY LEFT 使我的文本与视图的左侧对齐 但我想在文本视图内居中 但也与左侧部分对齐 这是我现在所拥有的 aaaaaaaaaaaaa aaaaaaaa aaaaaaaaaaaaaa 我想要的是
  • 如何在 Node 应用程序中嵌入 Node-Red 的多个实例

    Node red 文档此处提供了有关如何在 Nodejs 应用程序中嵌入单个 Node Red 应用程序的信息 http nodered org docs embedding http nodered org docs embedding
  • 如何将 .py 编译为 .exe?

    我正在尝试使用 py2exe 使用以下代码将我的 py 脚本编译为 exe from distutils core import setup import py2exe sys os sys argv append py2exe setup
  • 单击父节点时检查树的子节点 [ExtJS]

    我想知道如何在单击 ExtJs 中的特定节点时检查树的同级节点 我已经给了每个节点的 id 我可以访问单击的节点的 id 那么我如何继续自动检查子节点 有人请帮助我 or any other way of getting hands on
  • Bitnami:如何在 Apache2 中配置 GitLab 5.0 应用程序而不具有相对根目录?

    或者如何使 GitLab 应用程序作为 Apache2 HTTP 服务器上的根应用程序 我以前没有使用过 Apache2 但是我得到了Bitnami GitLab 虚拟机 http bitnami com stack gitlab virt
  • 如何将输入参数作为以逗号分隔的字符串或 DB2 中 IN 子句的列表传递

    我是存储过程的新手 我有一个疑问 我需要将输入参数作为以逗号分隔的字符串或 DB2 中 IN 子句的列表传递 请参阅下面的示例程序 CREATE PROCEDURE TEST SP IN listofUsername SPECIFIC TE
  • iOS 上可写的目录位置有哪些?

    我无法在 Apple iOS SDK 上找到有关哪些目录可写 哪些目录不适合您的应用程序的信息 我只假设NSCachesDirectory and NSDocumentDirectory是可写的 但其他的怎么样 比如NSApplicatio
  • 无法分配给属性:“$text”是不可变的

    我想在 SwiftUI 中创建一个自定义文本字段来处理第一响应者 但我在代码中遇到此错误并且结构是不可变的我不知道该怎么办 struct CustomTextField UIViewRepresentable class Coordinat
  • 使用 make 构建多个二进制文件

    我想创建一个 Makefile 在父目录中 来调用其他几个 Makefile 在子目录中 这样我就可以通过仅调用一个父 Makefile 来构建多个二进制文件 每个项目子目录一个 我的研究因在递归 Makefile 上找到大量内容而受到阻碍
  • 从同一文件和不同文件调用nodejs函数

    Model js 文件具有以下条目 exports update function tag view date 并调用该函数 例如 update test 1213 11 10 2014 它抛出以下错误 update test 1213 1
  • 如何将 ffplay 作为无窗口进程运行?

    我正在运行 ffplay 作为后台进程 它向我的主 UI 进程提供图像数据 我已经设定 SDL VIDEODRIVER dummy 抑制 SDL 窗口中显示的 ffplay 视频 问题是 即使不显示视频输出窗口 ffplay 进程仍然显示为
  • GNU C++ 如何检查 -std=c++0x 何时生效?

    我的系统编译器 gcc42 可以很好地满足我想要的 TR1 功能 但尝试支持除系统之外的较新编译器版本 尝试访问 TR1 标头时会出现 error 要求 std c 0x 选项 因为它如何与图书馆或类似的集线器接口 usr local li
  • IntelliJ 调试器:连接但不会注意到代码何时遇到断点

    我尝试使用 IntelliJ IDEA 11 1 Ultimate 调试应用程序服务器 WebLogic 调试器配置以前有效 我没有更改任何内容 发生的情况是 IntelliJ 告诉我 连接到目标虚拟机 地址 snip 9009 传输 so
  • 黑色视频 CAAnimation 和 AVFoundation AVAssetExportSession

    我是整个 AVFoundation 视频编辑电路的新手 我当前的测试应用程序是一个双屏幕应用程序 第一个屏幕执行 AVFoundation 视频录制 1 mov 第二个屏幕可让您查看视频并使用 CAAnimation 在其上添加一些标题 1
  • Windows 窗体中的本机外观(类似资源管理器)主菜单

    除了使用 MenuStrip 之外 还有其他方法在 C 中创建主菜单吗 它看起来与标准资源管理器菜单不相似 我在这里做错了什么吗 我只想要标准应用程序主菜单 例如浏览器菜单 听起来您想要一个尊重操作系统主题的菜单 MainMenu 类将执行
  • 使用 Android 应用程序访问 SIM 卡?

    我想知道是否可以使用 Android 应用程序访问 SIM 卡 你可以像这样获取 IMEI 但这是你想要的吗 只是一个例子 mTelephonyMgr TelephonyManager getSystemService Context TE
  • API 平台 - 我应该使用哪种方法来创建没有实体的自定义操作

    我是 API 平台的新手 我认为这很棒 但我找不到任何示例如何创建不基于任何实体的自定义端点 有很多基于实体的示例 通常都是关于 CRUD 的 但是自定义操作呢 我需要使用一些与任何实体无关的自定义参数通过数据库创建自定义搜索 例如 我想接
  • ASP中,位运算符左移和右移

    有谁知道左移和右移运算符示例吗 我是 ASP 新手 我发现了位运算符 例如 AND OR NOT 等等 对于 vbscript 左移是通过乘法完成的 即 var 2 左移一个位置 var 4 左移两个位置等 右移是通过除法完成 即 var
  • Zend Framework 2 的多个表

    我是 Zend Framework 2 的新手 我成功完成了 ZF2 的专辑教程 现在我想仅显示数据库中多个表中的某些数据 我有一个简单的数据库设置 其中包含表格 例如人员 书籍 状态等 数据库应该做什么并不重要 我想知道是否有一个教程可以
  • 从 C 代码获取当前使用的文件描述符的计数

    是否有 C API 可以获取 系统范围内当前使用的文件描述符 当前进程当前使用的文件描述符 对于当前进程计数 您可以使用getrlimit获取文件描述符限制 然后迭代从 0 到该限制的所有整数并尝试调用fcntl与F GETFD命令 它只会