根据pid获取该进程打开的文件数,几种实现方法?

longxingjin 2016-09-19 08:07:52
lsof -p pid |wc -l 得到的进程句柄数目 与使用 ll /proc/pid/fd/ |wc-l 命令的到的句柄数不相同怎么办?
哪个是准确的?
现在准备些一个模块来实现这个功能。
有pid可以得到进程的task_struct ,然后再得到files_struct 以及其中的ftable ,
但是在ftable中没有直接定义变量来说明打开的文件数,这个应该怎么办?
有谁能解释一下,接下来怎么做?

void fileOpenNo(pid_t pid)
{
struct task_struct *task;
struct files_struct *fs;
struct fdtable *fd;
task=pid_task(find_vpid(pid), PIDTYPE_PID);
fs=task->files;
fd=&(fs->fdt);
printk("the no is %d\n",fd->max_fds); //max-fds并不是定义打开的文件数}
...全文
683 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
longxingjin 2016-09-19
  • 打赏
  • 举报
回复
不好意思,是fdtable。。。。

4,436

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧