首頁 > 後端開發 > C++ > 如何在不直接存取'/proc”的情況下列出正在運行的 Linux 進程及其開啟的檔案?

如何在不直接存取'/proc”的情況下列出正在運行的 Linux 進程及其開啟的檔案?

Patricia Arquette
發布: 2024-12-11 11:39:19
原創
386 人瀏覽過

How Can I List Running Linux Processes and Their Open Files Without Directly Accessing `/proc`?

枚舉進程和關聯的開啟檔案

問題:

如何取得清單在Linux 系統上運行進程並確定它們打開了哪些文件,而無需直接檢查/proc/檔案

答案:

使用Procps-ng

Procps-ng 專案提供了廣泛的原始碼使用ps等進程排查工具。它們的實作利用 /proc/ 檔案系統來收集進程資訊。要詳細了解他們的方法,您可以檢查其源代碼存儲庫中的readproc.c 文件:

https://gitlab.com/procps-ng/procps/-/blob/master/library/readproc.c
登入後複製

利用Libproc

另一種方法是採用libproc 函式庫,它提供了用於存取進程資訊的綜合API。它應該在大多數存儲庫中可用,並在其“-dev”變體中提供標頭和其他基本組件。請諮詢您的特定套件管理器以取得安裝詳細資訊。

其他提示:

  • 使用pmap 指令確定目標進程是否正在存取共享記憶體
  • 查閱proc 和libproc 的手冊頁以取得全面的文檔

以上是如何在不直接存取'/proc”的情況下列出正在運行的 Linux 進程及其開啟的檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板