我正在尝试为我的 IOT 设备创建性能显示。该设备使用 Linux,所以我想使用 C 程序以编程方式获取文件句柄的数量。目前我正在使用 libprocps API 来获取所有其他数据。现在我想获取整个 IOT 设备的打开文件描述符/句柄。
ls /proc/[pid]/fd |wc -l 给出文件的数量。但是我需要从 C 程序中的任何 API 获取这些数据。哪个变量在 proc 中保存 fdinfo
您无法从 获取此信息libprocps
,但可以通过计算目录中的链接数(这相当于您的ls /proc/[pid]/fd | wc -l
命令)来获取每个进程的信息:
#include <dirent.h>
...
int fds = 0;
DIR * dirp;
struct dirent * entry;
dirp = opendir("/proc/.../fd"); /* You need to build the path */
while ((entry = readdir(dirp)) != NULL) {
if (entry->d_type == DT_LNK) {
fds++;
}
}
closedir(dirp);
您需要在上面添加错误处理。
如果要获取分配的文件句柄总数,请查看/proc/sys/fs/file-nr
:第一个数字是分配的文件句柄数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句