c – 查找当前打开的文件句柄数(不是lsof)
发布时间:2020-12-16 05:27:06 所属栏目:百科 来源:网络整理
导读:在* NIX系统上,有没有办法找出当前运行过程中有多少个打开的文件句柄? 我正在寻找一个在C中使用的API或公式,从正在运行的进程中. 解决方法 在某些系统上(见下文),您可以在/ proc / [pid] / fd中计算它们.如果没有其中一个,请参见下面的: wallyk’s answer.
在* NIX系统上,有没有办法找出当前运行过程中有多少个打开的文件句柄?
我正在寻找一个在C中使用的API或公式,从正在运行的进程中. 解决方法
在某些系统上(见下文),您可以在/ proc / [pid] / fd中计算它们.如果没有其中一个,请参见下面的:
wallyk’s answer.
在c中,您可以列出目录并计算总数,或列出目录内容: #include <stdio.h> #include <sys/types.h> #include <dirent.h> int main (void) { DIR *dp; struct dirent *ep; dp = opendir ("/proc/MYPID/fd/"); if (dp != NULL) { while (ep = readdir (dp)) puts (ep->d_name); (void) closedir (dp); } else perror ("Couldn't open the directory"); return 0; } 在bash中,类似于: ls -l /proc/[pid]/fd/ | wc -l
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |