linux-kernel如何和在哪裏讀取顯示系統中所有進程的proc/pid文件。我發現linux-source-2.6.31/fs/proc /這裏有文件,但很難理解,因爲它非常複雜。有人可以知道,它是如何工作的?linux-kernel如何讀取proc/pid文件?
5
A
回答
1
看着你的/ proc目錄,書中有一個虛擬的文件,該文件列出系統中運行的所有進程,即使是二進制程序PS實際上在/ proc目錄中的文件打開輸出過程/ PID的上市..
Linux ProcFs Guide Linux Proc Filesystem as a Programmer's Tool
8
3
您正在找正確的地方。
具體而言,fs/proc/base.c
中的函數proc_pid_readdir()
用於在讀取/proc
根目錄時填寫pid條目列表。你可以看到周圍的進程和任務的基本循環在功能:
ns = filp->f_dentry->d_sb->s_fs_info;
iter.task = NULL;
iter.tgid = filp->f_pos - TGID_OFFSET;
for (iter = next_tgid(ns, iter);
iter.task;
iter.tgid += 1, iter = next_tgid(ns, iter)) {
filp->f_pos = iter.tgid + TGID_OFFSET;
if (proc_pid_fill_cache(filp, dirent, filldir, iter) < 0) {
put_task_struct(iter.task);
goto out;
}
}
相關問題
- 1. 如何讀取.DS_Store文件
- 2. 如何讀取YAML文件?
- 3. 如何讀取文件
- 4. 如何讀取txt文件。?
- 5. 如何讀取CSV文件?
- 6. FileHelpers:如何讀取文件
- 7. Heroku:如何讀取文件?
- 8. 如何讀取svg文件
- 9. 如何讀取wtmp文件?
- 10. 如何讀取procfs文件?
- 11. 如何讀取inf文件?
- 12. 如何讀取文件
- 13. 如何讀取CSV文件?
- 14. 如何讀取csv文件
- 15. 如何讀取.class文件?
- 16. 如何讀取文件?
- 17. 如何讀取.inf文件?
- 18. 如何讀取XML文件
- 19. 如何讀取LDF文件?
- 20. 如何提取讀取壓縮文件?
- 21. 如何確保流讀取器只讀取文本文件
- 22. 如何用PHP讀取文本文件?
- 23. 如何讀取文本文件
- 24. 如何讀取文本文件到Datagridview
- 25. 如何逐行讀取文本文件?
- 26. 如何連續讀取文本文件
- 27. 如何讀取文本文件PHP
- 28. 如何讀取大文本文件?
- 29. 如何逐行讀取文本文件?
- 30. 如何多次讀取文本文件