PROCPS_MISC(3) Library Functions Manual PROCPS_MISC(3) NUME procps_misc - API (interfaa de program) pentru a accesa diverse informaii din sistemul de fiiere ,,/proc" REZUMAT #include Detalii platforma 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 execuie 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 spaiul 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 matii 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); Legatura cu -lproc2. DESCRIERE procps_cpu_count() returneaza numarul de procesoare care sunt in prezent active ca sysconf(_SC_NPROCESSORS_ONLY) sau un presupus 1. procps_hertz_get() returneaza numarul de cicluri de ceas pe secunda ca sysconf(_SC_CLK_TCK) sau se presupunu o valoare de 100. Imparirea ciclurilor la aceasta valoare genereaza secunde. procps_pid_length() returneaza lungimea maxima a irului pentru un PID activ al sistemului. De exemplu, daca cea mai mare valoare posibila de PID activ a fost 123, atunci lungimea ar fi 3. Daca fiierul /proc/sys/kernel/pid_max nu poate fi citit, se presupune ca valoarea este 5. procps_linux_version() returneaza versiunea curenta a nucleului Linux ca un intreg codificat. Pe sistemele non-Linux care au un sistem de fiiere proc emulat, aceasta funcie returneaza versiunea emularii Linux. Versiunea consta din trei numere intregi pozitive reprezentand nivelurile major, minor i plasture(patch). Urmatoarele macrocomenzi sunt furnizate pentru a codifica o anumita 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 incarcare a sistemului i plaseaza mediile de 1, 5 i 15 minute in locaiile specificate de orice indicator care nu este NULL. procps_uptime() returneaza timpul de funcionare i/sau secundele de inactivitate in locaiile specificate de orice indicator care nu este NULL. Utilizarea formatului sprint returneaza un ir care poate fi citit de om in una dintre cele doua forme. $ ps -o etimes 1 ELAPSED 12345 Nu exista conceptul de timp inactiv intr-un container, astfel incat procps_container_uptime() nu are acest parametru. procps_uptime() returneaza timpul de funcionare i/sau secundele de inactivitate in locaiile specificate de orice indicator care nu este NULL. Utilizarea formatului sprint returneaza un ir care poate fi citit de om in una dintre cele doua forme. HH:MM:SS up HH:MM, # users, load average: 1, 5, 15 MM averages up HH, MM procps_uptime_snprint() Utilizeaza memoria tampon data str de lungime size pentru a completa irul uptime in locul unei memorii tampon alocate static. Funcia necesita valoarea uptime_secs, care poate fi obinuta din procps_uptime() sau procps_container_uptime(), iar fanionul pretty determina daca ieirea este standard sau ,,pretty/short". procps_users() returneaza numarul de utilizatori din sistem. Aceasta valoare provine din sd_get_sessions(3) i numararea sesiunilor din clasa user, user-early i user-incomplete sau enumerarea prin getutent(3). procps_ns_get_id() returneaza id-ul intreg (enum namespace_type) al spaiului de nume pentru spaiul de nume dat nume. procps_ns_get_name() returneaza numele spaiului de nume pentru id-ul dat (enum namespace_type). procps_ns_read_pid() returneaza nodul-i pentru spaiile de nume ale procesului dat in structura procps_ns indicata de nsp. Acele noduri-i vor aparea in ordinea prescrisa 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() Completeaza str cu un ir de text lizibil de pana la size octei al semnalelor stabilite in masca de semnal hexazecimal sigmask, a se vedea signal(7). Daca lista de semnale depaete size octei, irul va fi trunchiat i se va termina cu un ,,+". Depinde de programul apelant sa se asigure ca str este alocat corect cu cel puin size octei. procps_capmask_names() Completeaza str cu un ir de text lizibil de pana la size octei din capacitaile stabilite in masca hexazecimala de capacitai capmask, a se vedea capabilities(7). Daca lista de capacitai depaete size octei, irul va fi trunchiat i se va termina cu un ,,+". Depinde de programul apelant sa se asigure ca str este alocat corect cu cel puin size octei. Pentru un proces care nu are capacitai sau are toate capacitaile, irul va fi ,,-" i, respectiv, ,,full". VALOARE RETURNATA Funcii care returneaza un ,,int" (numar intreg) sau un ,,long" (numar intreg lung) O eroare va fi indicata printr-un numar negativ care este intotdeauna inversul unei valori binecunoscute a errno.h. Funcii care returneaza o ,,adresa" O eroare va fi indicata printr-un indicator de returnare NULL cu motivul gasit in valoarea formala errno (numar eroare). FIIERE /proc/loadavg Valorile brute pentru media de incarcare. /proc/sys/kernel/osrelease Conine versiunea de lansare a nucleului Linux sau a sistemului de fiiere proc. /proc/sys/kernel/pid_max Conine valoarea la care se incadreaza PID-urile, cu una mai mare decat valoarea PID maxima. /proc/uptime Valorile brute pentru timpul de funcionare al sistemului i timpul de inactivitate. /proc/PID/ns conine setul de spaii de nume pentru un anumit PID. CONSULTAI I procps(3), procps_pids(3), getutent(3), sd_get_sessions(3), proc(5), capabilities(7), signal(7). procps-ng 06.07.2024 PROCPS_MISC(3)