0
如何從task_struct獲取所有加載的共享庫的進程(類似於ltd)?通過進程獲取所有加載的共享庫
我試圖通過從task_struct探索'文件'字段來做到這一點,但我在這方面失敗了。
我使用Linux操作系統Ubuntu 3.2.0-31-x86_64的通用
//編輯
解決上述問題的感謝到R..
其打印超過應該,但我的事情它仍然是有幫助的
struct task_struct *p;
struct file* f;
struct mm_struct* mm;
struct vm_area_struct* vm_area;
rcu_read_lock();
for_each_process(p) {
printk(KERN_WARNING "Pid: %d %d", p->pid, atomic_read(&p->files->count));
mm = get_task_mm(p);
if (mm == 0)
continue;
vm_area = mm->mmap;
while (vm_area != 0){
f = vm_area->vm_file;
if (f != 0){
printk(KERN_WARNING "file %s", f->f_path.dentry->d_iname);
} else {
printk(KERN_WARNING "file null");
}
vm_area = vm_area->vm_next;
}
}
rcu_read_unlock();