PROCPS_MISC(3) Library Functions Manual PROCPS_MISC(3) BEZEICHNUNG procps_misc - API fur diverse Informationen im /proc-Dateisystem UBERSICHT #include 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 procps_cpu_count() gibt die Anzahl der aktuell online befindlichen CPUs zuruck, entweder als sysconf(_SC_NPROCESSORS_ONLY) oder als angenommenes 1. procps_hertz_get() gibt die Anzahl der Taktzyklen pro Sekunde alssysconf(_SC_CLK_TCK) oder ein angenommenes 100 zuruck. Die Division der Taktzyklen durch diesenWert ergibt die Sekunden. procps_pid_length() gibt die maximale Zeichenkettenlange fur eine PID auf dem System zuruck. Wenn beispielsweise der grosste mogliche PID-Wert 123 ware, ware die Lange 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 zuruck. Auf Nicht-Linux-Systemen mit einem emulierten proc-Dateisystem gibt diese Funktion stattdessen die Version der Linux-Emulation zuruck. 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 zuruck, 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 zuruck. Die Varianten von sprint geben eine lesbare Zeichenkette in einem von zwei Formaten zuruck. 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 Lange size, um die Betriebszeitzeichenkette anstelle eines statisch zugewiesenen Puffers zu fullen. Die Funktion benotigt den Wert uptime_secs, der von procps_uptime() oder procps_container_uptime() abgerufen werden kann, sowie den Schalter pretty, das festlegt, ob die Ausgabe standardmassig oder formatiert/kurz ist. procps_users() gibt die Anzahl der Benutzer im System zuruck. Dieser Wert stammt von sd_get_sessions(3) und wird durch Zahlen der Sitzungen der Klassen user, user-early und user-incomplete oder durch Aufzahlung mit getutent(3) ermittelt. procps_ns_get_id() gibt die ganzzahlige ID (enum namespace_type) des Namensraums fur den gegebenen Namensraum name zuruck. procps_ns_get_name() gibt den Namen des Namensraums fur die gegebeneid (enum namespace_type) zuruck. procps_ns_read_pid() gibt die Inodes fur die Namensraume des angegebenen Prozesses in der procps_ns-Struktur zuruck, 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() fullt str mit einer lesbaren Zeichenkette von bis zu size Bytes der in der hexadezimalen Signalmaske sigmask festgelegten Signale (siehe signal(7)). Falls die Liste der Signale size Bytes uberschreitet, 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() fullt str mit einer lesbaren Zeichenkette von bis zu size Bytes der in der hexadezimalen Capabilities-Maske capmask festgelegten Fahigkeiten (siehe capabilities(7)).Wenn die Liste der Capabilities size Bytes uberschreitet, wird die Zeichenkette abgeschnitten und mit einem >>+<< abgeschlossen. Es obliegt dem aufrufenden Programm, sicherzustellen, dass str korrekt mit mindestens size Bytes zugewiesen wird. Fur einen Prozess ohne bzw. mit allen Capabilities lautet die Zeichenkette entsprechend >>-<< bzw. >>full<<. RUCKGABEWERT Funktionen, die ein `int' oder `long' zuruckgeben Ein Fehler wird durch eine negative Zahl angezeigt, die stets der Kehrwert eines bekannten errno.h-Wertes ist. Funktionen, die ein `address' zuruckgeben Ein Fehler wird durch einen NULL-Ruckgabezeiger angezeigt, wobei der Grund im formalen errno-Wert zu finden ist. DATEIEN /proc/loadavg Die Rohwerte fur die durchschnittliche Last. /proc/sys/kernel/osrelease Enthalt die Release-Version des Linux-Kernels oder des proc-Dateisystems. /proc/sys/kernel/pid_max Enthalt den Wert, bei dem die PIDs umlaufen, der um eins grosser ist als der maximale PID-Wert. /proc/uptime Die Rohwerte fur Systembetriebszeit und Leerlaufzeit. /proc/PID/ns enthalt die Menge der Namensraume fur eine bestimmte PID. SIEHE AUCH procps(3), procps_pids(3), getutent(3), sd_get_sessions(3), proc(5), capabilities(7), signal(7). procps-ng 6. Juli 2024 PROCPS_MISC(3)