# procps_misc

## NAME



           procps_misc - API for miscellaneous information in the /proc
           filesystem
    


## SYNOPSIS



           **#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



           **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



       **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



           _/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_.
    


* * *