当前位置: 技术问答>linux和unix
获取当前进程打开的文件数
来源: 互联网 发布时间:2016-09-10
本文导语: 如何在程序中获取当前进程打开的文件数 | 用getpid得到当前进程的pid,然后看看/proc/pid/fd这个目录里有几个文件(符号链接) | 试了一下,发现一点问题。用readdir读取的结果总...
如何在程序中获取当前进程打开的文件数
|
用getpid得到当前进程的pid,然后看看/proc/pid/fd这个目录里有几个文件(符号链接)
|
试了一下,发现一点问题。用readdir读取的结果总是包含"."、".."、0(stdin)、1(stdout)、2(stderr)
如果不想在结果里包括这些,可以直接减5,或者自己判断readdir每次的结果然后把他们过滤掉。
如果不想在结果里包括这些,可以直接减5,或者自己判断readdir每次的结果然后把他们过滤掉。
int main()
{
struct dirent *entry;
DIR *dir;
char dirname[100];
int i=0;
pid_t pid = getpid();
sprintf(dirname, "/proc/%d/fd", (int)pid);
dir = opendir(dirname);
while ((entry=readdir(dir))!=NULL)
{
i++;
}
printf("%dn", i);
closedir(dir);
return 0;
}
|
好像用lsof命令也能得到
|
回顾中国高增长的道路,第一阶段招商引资,第二阶段乡镇企业全民经商,第三阶段国企改革,第四阶段房地产市场化,这就是我国GDP高增长的发展模式,接下来的发展模式是什么?就是城镇化,新能源·低碳都是发展过程中的姿态,但真正能持续发展的还是城镇化。顺这个思路去寻找投资出路吧。
|
参考lsof源代码