Как я могу получить все загруженные разделяемые библиотеки процессом (sth подобным ltd) из task_struct?Получение всех загруженных разделяемых библиотек процессом
Я пытаюсь сделать это, исследуя поле «файлы» из 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();