c++clinuxprocess

Linux API to list running processes?


I need a C/C++ API that allows me to list the running processes on a Linux system, and list the files each process has open.

I do not want to end up reading the /proc/ file system directly.

Can anyone think of a way to do this?


Solution

  • https://gitlab.com/procps-ng/procps

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

    Is the source of ps and other process tools. They do indeed use proc (indicating it is probably the conventional and best way). Their source is quite readable. The file

    /procps-3.2.8/proc/readproc.c
    

    May be useful. Also a useful suggestion as posted by ephemient is linking to the API provided by libproc, which should be available in your repo (or already installed I would say) but you will need the "-dev" variation for the headers and what-not.

    Good Luck