PROCPS_MISC(3) Library Functions Manual PROCPS_MISC(3)

procps_misc — API för diverse information i filsystemet /proc

#include <libproc2/misc.h>
Plattformsegenskaper
long         procps_cpu_count (void);
long         procps_hertz_get (void);
unsigned int procps_pid_length (void);
int          procps_linux_version (void);
Körtidsegenskaper
int   procps_container_uptime (double *uppetid_s);
int   procps_loadavg (double *gs1, double *gs5, double *gs15);
int   procps_uptime (double *uppetid_s, double *inaktiv_s);
int   procps_uptime_snprint ( char *restrict str, size_t storlek, double uppetid_s, const int snyggt);
char *procps_uptime_sprint (void);
char *procps_uptime_sprint_short (void);
int   procps_users (void);
Namnrymdsegenskaper
int         procps_ns_get_id (const char *namn);
const char *procps_ns_get_name (int id);
int         procps_ns_read_pid (int pid, struct procps_ns *nrd);
Masknamnsuppslagning
int procps_sigmask_names (char *const str, size_t storlek , const char *sigmask);
int procps_capmask_names (char *const str, size_t storlek,  const char *fmgmask);
Länka med -lproc2.

procps_cpu_count() returnerar antalet CPU:er som för närvarande är inkopplade liksom sysconf(_SC_NPROCESSORS_ONLY) eller ett antaget 1.

procps_hertz_get() returnerar antalet klocktick per sekund liksom sysconf(_SC_CLK_TCK) eller ett antaget 100. Att dividera tick med detta värder ger sekunder.

procps_pid_length() returnerar den maximala stränglängden för en PID på systemet. Till exempel, om det största möjliga värdet på en PID var 123, då skulle längden vara 3. Om filen /proc/sys/kernel/pid_max är oläsbar antas värdet vara 5.

procps_linux_version() returnerar den aktuella Linuxversionen som ett kodat heltal. På ett icke-Linuxsystem som har ett emulerat proc-filsystem returnerar denna funktionen versionen på Linuxemuleringen istället. Versionen består av tre positiva heltal som representerar nivåerna större, mindre och fix. Följande makron finns för att koda en given Linuxversion eller att separera ut komponenterna av den aktuella versionen.

LINUX_VERSION( större , mindre , fix )

LINUX_VERSION_MAJOR( ver )

LINUX_VERSION_MINOR( ver )

LINUX_VERSION_PATCH( ver )

procps_loadavg() hämtar genomsnittlig systemlast och lägger genomsnitten över 1, 5 och 15 minuter i platserna som anges av de pekare som inte är NULL.

procps_container_uptime() returnerar en behållares uppetid i platsen som anges av pekaren om den inte är NULL. Detta avgörs för närvarande av den förlupna tiden för PID 1, vilket skulle kunna ges med kommandot:


$ ps -o etimes 1
FÖRLUP.
12345

Begreppet inaktiv tid finns inte i en behållare så procps_container_uptime har inte den parametern.

procps_uptime() returnerar uppetiden och eller inaktiva sekunder i platserna som anges av de pekare som inte är NULL. Varianterna sprint returnerar en mänskligt läsbar sträng på en av två former.

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

up HH, MM

procps_uptime_snprint() använder den givna bufferten str med längden storlek för att fylla i upptidssträngen istället för en statiskt allokerad buffert. Funktionen behöver värdet uppetid_s, som kan fås från procps_uptime() eller procps_container_uptime() och flaggan snyggt avgör ifall utdata är standard eller snyggt/kort.

procps_users() returnerar antalet användare på systemet. Detta värde kommer från sd_get_sessions(3) och räknar användarsessionerna, klasserna user-early och user-incomplete eller uppräkningen via getutent(3).

procps_ns_get_id() returnerar heltals-id:t (enum namespace_type) för namnrymden för den angivna namnrymden namn.

procps_ns_get_name() returnerar namnet på namnrymden för det angivna id:t (enum namespace_type).

procps_ns_read_pid() returnerar inoderna för namnrymderna för den angivna processen procps_ns-posten som pekas ut av nrp. Dessa inoder kommer komma i den ordning som föreskrivs av 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() fyller str med en mänskligt läsbar textsträng av upp till storlek byte med signalerna satta i den hexadecimala signalmasken sigmask, se signal(7). Om listan av signaler överskrider storlek byte kommer strängen huggas av och sluta med ett ”+”. Det åligger det anropande programmet att se till att str är korrekt allokerad med åtnimstone storlek byte.

procps_capmask_names() fyller str med en mänskligt läsbar textsträng av upp till storlek byte med förmågorna som är satta i den hexadecimala förmågemasken fmgmask, se capabilities(7). Om listan av förmågor överskrider storlek byte kommer strängen huggas av och sluta med ett ”+”. Det åligger det anropande programmet att se till att str är korrekt allokerad med åtnimstone stårlek byte.

För en process som inte har några förmågor eller alla förmågor kommer strängern vara ”-” respektive ”full”.

Funktioner som returnerar en ”int” eller ”long”

Ett fel kommer indikera ett negativt tal som alltid är inversen av något känt värde från errno.h.

Funktioner som returnerar en ”adress”

Ett fel kommer indikeras av en NULL-returpekare och orsaken går att hitta i dett formella errno-värdet.

/proc/loadavg
De råa värdena för lastgenomsnitt.
/proc/sys/kernel/osrelease
Innehåller utgåveversionen för Linuxkärnan eller proc-filsystemet.
/proc/sys/kernel/pid_max
Innehåller värdet vid vilket PID:ar slår runt, ett större än det maximala PID-värdet.
/proc/uptime
De råa värdena för systemets uppetid och inaktiv tid.
/proc/PID/ns
innehåller uppsättningen av namnrymder för en viss PID.

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

2024-07-06 procps-ng