解决方法
在某些系统上(见下文),您可以在/ proc / [pid] / fd中计算它们.如果没有其中一个,请参见下面的:
wallyk’s answer.
#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
Operating systems that support the proc filesystem include,but are not limited to: Solaris IRIX Tru64 UNIX BSD Linux (which extends it to non-process-related data) IBM AIX (which bases its implementation on Linux to improve compatibility) QNX Plan 9 from Bell Labs
原文地址:https://www.jb51.cc/c/114813.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。