PROCPS_MISC(3)

NUME
procps_misc - API (interfață de program) pentru a accesa diverse informații din sistemul de fișiere „/proc”

REZUMAT
#include <libproc2/misc.h>

Detalii platformă

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

Detalii privind timpul de execuție

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

Detalii despre spațiul de nume

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

Rezolvarea numelui măștii

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

Legătură cu -lproc2.

DESCRIERE
procps_cpu_count() returnează numărul de procesoare care sunt în prezent active ca sysconf(_SC_NPROCESSORS_ONLY) sau un presupus 1.

procps_hertz_get() returnează numărul de cicluri de ceas pe secundă ca sysconf(_SC_CLK_TCK) sau se presupunu o valoare de 100. Împărțirea ciclurilor la această valoare generează secunde.

procps_pid_length() returnează lungimea maximă a șirului pentru un PID activ al sistemului. De exemplu, dacă cea mai mare valoare posibilă de PID activ a fost 123, atunci lungimea ar fi 3. Dacă fișierul /proc/sys/kernel/pid_max nu poate fi citit, se presupune că valoarea este 5.

procps_linux_version() returnează versiunea curentă a nucleului Linux ca un întreg codificat. Pe sistemele non-Linux care au un sistem de fișiere proc emulat, această funcție returnează versiunea emulării Linux. Versiunea constă din trei numere întregi pozitive reprezentând nivelurile major, minor și plasture(patch). Următoarele macrocomenzi sunt furnizate pentru a codifica o anumită versiune Linux sau pentru a separa componentele versiunii curente.

    LINUX_VERSION( major , minor , patch )

    LINUX_VERSION_MAJOR( ver )

    LINUX_VERSION_MINOR( ver )

    LINUX_VERSION_PATCH( ver )

procps_loadavg() preia media de încărcare a sistemului și plasează mediile de 1, 5 și 15 minute în locațiile specificate de orice indicator care nu este NULL.

procps_uptime() returnează timpul de funcționare și/sau secundele de inactivitate în locațiile specificate de orice indicator care nu este NULL. Utilizarea formatului sprint returnează un șir care poate fi citit de om în una dintre cele două forme.

    $ ps -o etimes 1
    ELAPSED
    12345

Nu există conceptul de timp inactiv într-un container, astfel încât procps_container_uptime() nu are acest parametru.

procps_uptime() returnează timpul de funcționare și/sau secundele de inactivitate în locațiile specificate de orice indicator care nu este NULL. Utilizarea formatului sprint returnează un șir care poate fi citit de om în una dintre cele două forme.

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

    up HH, MM

procps_uptime_snprint() Utilizează memoria tampon dată str de lungime size pentru a completa șirul uptime în locul unei memorii tampon alocate static. Funcția necesită valoarea uptime_secs, care poate fi obținută din procps_uptime() sau procps_container_uptime(), iar fanionul pretty determină dacă ieșirea este standard sau „pretty/short”.

procps_users() returnează numărul de utilizatori din sistem. Această valoare provine din sd_get_sessions(3) și numărarea sesiunilor din clasa user, user-early și user-incomplete sau enumerarea prin getutent(3).

procps_ns_get_id() returnează id-ul întreg (enum namespace_type) al spațiului de nume pentru spațiul de nume dat nume.

procps_ns_get_name() returnează numele spațiului de nume pentru id-ul dat (enum namespace_type).

procps_ns_read_pid() returnează nodul-i pentru spațiile de nume ale procesului dat în structura procps_ns indicată de nsp. Acele noduri-i vor apărea în ordinea prescrisă de enumerarea 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() Completează str cu un șir de text lizibil de până la size octeți al semnalelor stabilite în masca de semnal hexazecimal sigmask, a se vedea signal(7). Dacă lista de semnale depășește size octeți, șirul va fi trunchiat și se va termina cu un „+”. Depinde de programul apelant să se asigure că str este alocat corect cu cel puțin size octeți.

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). 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.

Pentru un proces care nu are capacități sau are toate capacitățile, șirul va fi „-” și, respectiv, „full”.

VALOARE RETURNATĂ

  Funcții care returnează un „int” (număr întreg) sau un „long” (număr întreg lung)
O eroare va fi indicată printr-un număr negativ care este întotdeauna inversul unei valori binecunoscute a errno.h.

  Funcții care returnează o „adresă”
O eroare va fi indicată printr-un indicator de returnare NULL cu motivul găsit în valoarea formală errno (număr eroare).

FIȘIERE

/proc/loadavg
    Valorile brute pentru media de încărcare.

/proc/sys/kernel/osrelease
    Conține versiunea de lansare a nucleului Linux sau a sistemului de fișiere proc.

/proc/sys/kernel/pid_max
    Conține valoarea la care se încadrează PID-urile, cu una mai mare decât valoarea PID maximă.

/proc/uptime
    Valorile brute pentru timpul de funcționare al sistemului și timpul de inactivitate.

/proc/PID/ns
    conține setul de spații de nume pentru un anumit PID.

CONSULTAȚI ȘI
procps(3), procps_pids(3), getutent(3), sd_get_sessions(3), proc(5), capabilities(7), signal(7).