Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menyenaraikan Proses Linux yang Berjalan dan Fail Terbukanya Tanpa Mengakses `/proc` secara Terus?

Bagaimanakah Saya Boleh Menyenaraikan Proses Linux yang Berjalan dan Fail Terbukanya Tanpa Mengakses `/proc` secara Terus?

Patricia Arquette
Patricia Arquetteasal
2024-12-11 11:39:19383semak imbas

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

Menghitung Proses dan Fail Terbuka Berkaitan

Soalan:

Bagaimana saya boleh mendapatkan senarai menjalankan proses pada sistem Linux dan menentukan fail mana yang mereka buka tanpa perlu melakukan pemeriksaan terus ke atas fail /proc/ sistem?

Jawapan:

Menggunakan Procps-ng

Projek Procps-ng menyediakan kod sumber untuk secara meluas menggunakan ps dan alat penyiasatan proses lain. Pelaksanaannya menggunakan sistem fail /proc/ untuk mengumpulkan maklumat proses. Untuk mendapatkan pandangan terperinci tentang pendekatan mereka, anda boleh menyemak fail readproc.c dalam repositori kod sumber mereka:

https://gitlab.com/procps-ng/procps/-/blob/master/library/readproc.c

Memanfaatkan Libproc

Kaedah alternatif ialah menggunakan perpustakaan libproc, yang menyediakan API komprehensif untuk mengakses maklumat proses. Ia sepatutnya tersedia dalam kebanyakan repositori dan menyediakan pengepala dan komponen penting lain dalam varian "-dev"nya. Rujuk pengurus pakej khusus anda untuk butiran pemasangan.

Petua Tambahan:

  • Gunakan arahan pmap untuk menentukan sama ada proses sasaran mengakses memori kongsi
  • Rujuk halaman manual proc dan libproc untuk dokumentasi komprehensif

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyenaraikan Proses Linux yang Berjalan dan Fail Terbukanya Tanpa Mengakses `/proc` secara Terus?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn