PROCPS\_MISC(3) Library Functions Manual PROCPS\_MISC(3)

# [BEZEICHNUNG](#BEZEICHNUNG)

procps\_misc – API für diverse Informationen im /proc-Dateisystem

# ÜBERSICHT

```
#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);
```

```
Linken Sie mit der Option -lproc2.
```

# [BESCHREIBUNG](#BESCHREIBUNG)

**procps\_cpu\_count**() gibt die Anzahl der aktuell online befindlichen CPUs zurück, entweder als **sysconf(\_SC\_NPROCESSORS\_ONLY)** oder als angenommenes *1*.

**procps\_hertz\_get**() gibt die Anzahl der Taktzyklen pro Sekunde als**sysconf(\_SC\_CLK\_TCK)** oder ein angenommenes *100* zurück. Die Division der Taktzyklen durch diesenWert ergibt die Sekunden.

**procps\_pid\_length**() gibt die maximale Zeichenkettenlänge für eine PID auf dem System zurück. Wenn beispielsweise der größte mögliche PID-Wert 123 wäre, wäre die Länge 3. Falls die Datei */proc/sys/kernel/pid\_max* nicht lesbar ist, wird der Wert *5* angenommen.

**procps\_linux\_version**() gibt die aktuelle Linux-Version als kodierte Ganzzahl zurück. Auf Nicht-Linux-Systemen mit einem emulierten proc-Dateisystem gibt diese Funktion stattdessen die Version der Linux-Emulation zurück. Die Version besteht aus drei positiven Ganzzahlen, die die Haupt-, Neben- und Patch-Version darstellen. Die folgenden Makros dienen der Kodierung einer gegebenen Linux-Version oder der Trennung der Komponenten der aktuellen Version.

LINUX\_VERSION( Haupt , Neben , Patch )

LINUX\_VERSION\_MAJOR( Version )

LINUX\_VERSION\_MINOR( Version )

LINUX\_VERSION\_PATCH( Version )

**procps\_loadavg**() ruft die durchschnittliche Systemlast ab und speichert die 1-, 5- und 15-Minuten-Durchschnittswerte an den durch einen beliebigen Zeiger, der nicht *NULL* ist, angegebenen Speicherorten.

**procps\_container\_uptime**() gibt die Laufzeit eines Containers an der durch den Zeiger angegebenen Adresse zurück, sofern dieser nicht *NULL* ist. Diese wird aktuell durch die verstrichene Zeit von Prozess-ID 1 bestimmt, die mit folgendem Befehl angegeben werden kann:

```
$ ps -o etimes 1
ELAPSED
12345
```

In einem Container gibt es kein Konzept von Leerlaufzeit, daher hat **procps\_container\_uptime**() diesen Parameter nicht.

**procps\_uptime**() gibt die Betriebszeit und/oder die Leerlaufzeit in Sekunden an den durch einen beliebigen Zeiger (nicht *NULL*) angegebenen Speicherorten zurück. Die Varianten von **sprint** geben eine lesbare Zeichenkette in einem von zwei Formaten zurück.

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

up HH, MM

**procps\_uptime\_snprint**() verwendet den angegebenen Puffer *str* der Länge *size*, um die Betriebszeitzeichenkette anstelle eines statisch zugewiesenen Puffers zu füllen. Die Funktion benötigt den Wert *uptime\_secs*, der von **procps\_uptime**() oder **procps\_container\_uptime**() abgerufen werden kann, sowie den Schalter *pretty*, das festlegt, ob die Ausgabe standardmäßig oder formatiert/kurz ist.

**procps\_users**() gibt die Anzahl der Benutzer im System zurück. Dieser Wert stammt von [**sd\_get\_sessions**(3)](/man/os/procps/sd_get_sessions.3) und wird durch Zählen der Sitzungen der Klassen user, user-early und user-incomplete oder durch Aufzählung mit [**getutent**(3)](/man/os/procps/getutent.3) ermittelt.

**procps\_ns\_get\_id**() gibt die ganzzahlige ID (enum namespace\_type) des Namensraums für den gegebenen Namensraum *name* zurück.

**procps\_ns\_get\_name**() gibt den Namen des Namensraums für die gegebene*id* (enum namespace\_type) zurück.

**procps\_ns\_read\_pid**() gibt die Inodes für die Namensräume des angegebenen Prozesses in der procps\_ns-Struktur zurück, auf die *nsp* zeigt. Diese Inodes erscheinen in der durch den Enumerationstyp namespace\_type festgelegten Reihenfolge.

```
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**() füllt *str* mit einer lesbaren Zeichenkette von bis zu *size* Bytes der in der hexadezimalen Signalmaske *sigmask* festgelegten Signale (siehe [**signal**(7)](/man/os/procps/signal.7)). Falls die Liste der Signale *size* Bytes überschreitet, wird die Zeichenkette abgeschnitten und mit einem »+« abgeschlossen. Es obliegt dem aufrufenden Programm, sicherzustellen, dass *str* korrekt mit mindestens *size* Bytes zugewiesen wird.

**procps\_capmask\_names**() Fills *str* with a human-readable text string of up to *size* bytes of the capabilities set in the hexadecimal capability mask *capmask*, see [**capabilities**(7)](/man/os/procps/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.

Für einen Prozess ohne bzw. mit allen Capabilities lautet die Zeichenkette entsprechend »-« bzw. »full«.

# [RÜCKGABEWERT](#R)

## Funktionen, die ein ‘int’ oder ‘long’ zurückgeben

Ein Fehler wird durch eine negative Zahl angezeigt, die stets der Kehrwert eines bekannten errno.h-Wertes ist.

## Funktionen, die ein ‘address’ zurückgeben

Ein Fehler wird durch einen NULL-Rückgabezeiger angezeigt, wobei der Grund im formalen errno-Wert zu finden ist.

# [DATEIEN](#DATEIEN)

*/proc/loadavg*

Die Rohwerte für die durchschnittliche Last.

*/proc/sys/kernel/osrelease*

Enthält die Release-Version des Linux-Kernels oder des proc-Dateisystems.

*/proc/sys/kernel/pid\_max*

Enthält den Wert, bei dem die PIDs umlaufen, der um eins größer ist als der maximale PID-Wert.

*/proc/uptime*

Die Rohwerte für Systembetriebszeit und Leerlaufzeit.

*/proc/*PID*/ns*

enthält die Menge der Namensräume für eine bestimmte *PID*.

# [SIEHE AUCH](#SIEHE_AUCH)

[**procps**(3)](/man/os/procps/procps.3), [**procps\_pids**(3)](/man/os/procps/procps_pids.3), [**getutent**(3)](/man/os/procps/getutent.3), [**sd\_get\_sessions**(3)](/man/os/procps/sd_get_sessions.3), [**proc**(5)](/man/os/procps/proc.5), [**capabilities**(7)](/man/os/procps/capabilities.7), [**signal**(7)](/man/os/procps/signal.7).

6\. Juli 2024 procps-ng

---

Document: procps_misc(3) from procps 4.0.7-r2 (Chainguard OS)
Source: https://downloads.sourceforge.net/project/procps-ng/Production/procps-ng-4.0.7.tar.xz
