procps_misc(3) — Linux manual page

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | FILES | SEE ALSO | COLOPHON

PROCPS_MISC(3)           Library Functions Manual          PROCPS_MISC(3)

NAME         top

       procps_misc - API for miscellaneous information in the /proc
       filesystem

SYNOPSIS         top

       #include <libproc2/misc.h>

       Platform Particulars

           long         procps_cpu_count (void);
           long         procps_hertz_get (void);
           unsigned int procps_pid_length (void);
           int          procps_linux_version (void);

       Runtime Particulars

           int   procps_container_uptime (double *uptime_secs);
           int   procps_loadavg (double *av1, double *av5, double *av15);
           int   procps_uptime (double *uptime_secs, double *idle_secs);
           int   procps_uptime_snprint ( char *restrict str, size_t size, double uptime_secs, const int pretty);
           char *procps_uptime_sprint (void);
           char *procps_uptime_sprint_short (void);
           int   procps_users (void);

       Namespace Particulars

           int         procps_ns_get_id (const char *name);
           const char *procps_ns_get_name (int id);
           int         procps_ns_read_pid (int pid, struct procps_ns *nsp);

       Mask Name Resolving

           int procps_sigmask_names (char *const str, size_t size , const char *sigmask);
           int procps_capmask_names (char *const str, size_t size,  const char *capmask);

       Link with -lproc2.

DESCRIPTION         top

       procps_cpu_count() returns the number of CPUs that are currently
       online as sysconf(_SC_NPROCESSORS_ONLY) or an assumed 1.

       procps_hertz_get() returns the number of clock ticks per second as
       sysconf(_SC_CLK_TCK) or an assumed 100.  Dividing tics by this
       value yields seconds.

       procps_pid_length() returns the maximum string length for a PID on
       the system. For example, if the largest possible PID value on was
       123, then the length would be 3. If the file
       /proc/sys/kernel/pid_max is unreadable, the value is assumed to be
       5.

       procps_linux_version() returns the current Linux version as an
       encoded integer. On non-Linux systems that have an emulated proc
       filesystem this function returns the version of the Linux
       emulation instead.  The version consists of three positive
       integers representing the major, minor and patch levels.  The
       following macros are provided for encoding a given Linux version
       or separating out the components of the current version.

           LINUX_VERSION( major , minor , patch )

           LINUX_VERSION_MAJOR( ver )

           LINUX_VERSION_MINOR( ver )

           LINUX_VERSION_PATCH( ver )

       procps_loadavg() fetches the system load average and puts the 1, 5
       and 15 minute averages into location(s) specified by any pointer
       which is not NULL.

       procps_container_uptime() returns the uptime of a container into
       location specified by the pointer if it is not NULL. This is
       currently determined by the elapsed time of PID 1, which could be
       given with the command:

           $ ps -o etimes 1
           ELAPSED
           12345

       There is no concept of idle time in a container so
       procps_container_uptime() doesn't have that parameter.

       procps_uptime() returns uptime and/or idle seconds into
       location(s) specified by any pointer which is not NULL.  The
       sprint varieties return a human-readable string in one of two
       forms.

           HH:MM:SS up HH:MM, # users, load average: 1, 5, 15 MM averages

           up HH, MM

       procps_uptime_snprint() Uses the given buffer str of size length
       to fill in the uptime string instead of a statically allocated
       buffer.  The function requires the uptime_secs value, which can be
       obtained from procps_uptime() or procps_container_uptime() and the
       pretty flag determines if the output is standard or pretty/short.

       procps_users() returns the number of users on the system. This
       value comes from sd_get_sessions(3) and counting the sessions of
       user, user-early and user-incomplete class or enumerating through
       getutent(3).

       procps_ns_get_id() returns the integer id (enum namespace_type) of
       the namespace for the given namespace name.

       procps_ns_get_name() returns the name of the namespace for the
       given id (enum namespace_type).

       procps_ns_read_pid() returns the inodes for the namespaces of the
       given process in the procps_ns structure pointed to by nsp.  Those
       inodes will appear in the order proscribed by enum namespace_type.

           enum namespace_type {
               PROCPS_NS_CGROUP,
               PROCPS_NS_IPC,
               PROCPS_NS_MNT,
               PROCPS_NS_NET,
               PROCPS_NS_PID,
               PROCPS_NS_TIME,
               PROCPS_NS_USER,
               PROCPS_NS_UTS
           };

       procps_sigmask_names() Fills str with a human-readable text string
       of up to size bytes of the signals set in the hexadecimal signal
       mask sigmask, see signal(7).  If the list of signals exceeds size
       bytes, the string will be truncated and will end with a '+'. It is
       up to the calling program to ensure that str is correctly
       allocated with at least size bytes.

       procps_capmask_names() Fills str with a human-readable text string
       of up to size bytes of the capabilites set in the hexadecimal
       capability mask capmask, see capabilities(7).  If the list of
       capabilities exceeds size bytes, the string will be truncated and
       will end with a '+'. It is up to the calling program to ensure
       that str is correctly allocated with at least size bytes.

       For a process that has no capabilities or all capabilities the
       string will be "-" and "full" respectively.

RETURN VALUE         top

   Functions Returning an ‘int’ or ‘long’
       An error will be indicated by a negative number that is always the
       inverse of some well known errno.h value.

   Functions Returning an ‘address’
       An error will be indicated by a NULL return pointer with the
       reason found in the formal errno value.

FILES         top

       /proc/loadavg
              The raw values for load average.

       /proc/sys/kernel/osrelease
              Contains the release version of the Linux kernel or proc
              filesystem.

       /proc/sys/kernel/pid_max
              Contains the value at which PIDs wrap around, one greater
              than the maximum PID value.

       /proc/uptime
              The raw values for system uptime and idle time.

       /proc/PID/ns
              contains the set of namespaces for a particular PID.

SEE ALSO         top

       procps(3), procps_pids(3), getutent(3), sd_get_sessions(3),
       proc(5), capabilities(7), signal(7).

COLOPHON         top

       This page is part of the procps-ng (/proc filesystem utilities)
       project.  Information about the project can be found at 
       ⟨https://gitlab.com/procps-ng/procps⟩.  If you have a bug report
       for this manual page, see
       ⟨https://gitlab.com/procps-ng/procps/blob/master/Documentation/bugs.md⟩.
       This page was obtained from the project's upstream Git repository
       ⟨https://gitlab.com/procps-ng/procps.git⟩ on 2025-02-02.  (At that
       time, the date of the most recent commit that was found in the
       repository was 2025-01-15.)  If you discover any rendering
       problems in this HTML version of the page, or you believe there is
       a better or more up-to-date source for the page, or you have
       corrections or improvements to the information in this COLOPHON
       (which is not part of the original manual page), send a mail to
       man-pages@man7.org

procps-ng                       2024-07-06                 PROCPS_MISC(3)

Pages that refer to this page: procps(3)procps_pids(3)