<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">.\"
.\" Copyright (c) 2020-2023 Jim Warner &lt;james.warner@comcast.net&gt;
.\" Copyright (c) 2020-2023 Craig Small &lt;csmall@dropbear.xyz&gt;
.\"
.\" This manual is free software; you can redistribute it and/or
.\" modify it under the terms of the GNU Lesser General Public
.\" License as published by the Free Software Foundation; either
.\" version 2.1 of the License, or (at your option) any later version.
.\"
.\"
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH PROCPS 3 "SierpieÅ„ 2022" libproc2 
.\" Please adjust this date whenever revising the manpage.
.\"
.nh
.SH NAZWA
procps \- API do dostÄ™pu do informacji systemowych w systemie plikÃ³w /proc

.SH SKÅADNIA
W niniejszym opisie jest reprezentowanych piÄ™Ä‡ rÃ³Å¼nych interfejsÃ³w,
nazwanych od plikÃ³w sÅ‚uÅ¼Ä…cych do dostÄ™pu w pseudo systemie plikÃ³w /proc:
\fBdiskstats\fP, \fBmeminfo\fP, \fBslabinfo\fP, \fBstat\fP oraz \fBvmstat\fP.

.nf
.RS +4
#include &lt;libproc2/\fBinterfejs\fP.h&gt;

int\fB procps_new  \fP (struct info **\fIinfo\fP);
int\fB procps_ref  \fP (struct info  *\fIinfo\fP);
int\fB procps_unref\fP (struct info **\fIinfo\fP);

struct result *\fBprocps_get\fP (
    struct info *\fIinfo\fP,
[   const char *\fIname\fP,      ]   tylko API \fBdiskstats\fP
    enum item \fIitem\fP);

struct stack *\fBprocps_select\fP (
    struct info *\fIinfo\fP,
[   const char *\fIname\fP,      ]   tylko API \fBdiskstats\fP
    enum item *\fIitems\fP,
    int \fInumitems\fP);

struct reaped *\fBprocps_reap\fP (
    struct info *\fIinfo\fP,
[   enum reap_type \fIwhat\fP,   ]   tylko API \fBstat\fP
    enum item *\fIitems\fP,
    int \fInumitems\fP);

struct stack **\fBprocps_sort\fP (
    struct info *\fIinfo\fP,
    struct stack *\fIstacks\fP[],
    int \fInumstacked\fP,
    enum item \fIsortitem\fP,
    enum sort_order \fIorder\fP);

.fi

PowyÅ¼sze funkcje i struktury sÄ… ogÃ³lne, ale konkretne \fBinterfejsy\fP stajÄ…
siÄ™ czÄ™Å›ciÄ… identyfikatorÃ³w. Np. `procps_new' wÅ‚aÅ›ciwie staje siÄ™
`procps_\fBmeminfo\fP_new', `info' staje siÄ™ `\fBdiskstats\fP_info' itd.

Ten sam \fBinterfejs\fP jest uÅ¼ywany w nazwie kaÅ¼dego pliku nagÅ‚Ã³wkowego z
dodanym rozszerzeniem `.h'.

KonsolidowaÄ‡ z \fI\-lproc2\fP.

.SH OPIS
.SS PrzeglÄ…d
Interfejsy te opierajÄ… siÄ™ na prostej strukturze `result',
odzwierciedlajÄ…cej element `item' wraz z jego wartoÅ›ciÄ… (w unii ze
standardowymi typami C jako skÅ‚adowymi). Wszystkie struktury `result' sÄ…
automatycznie przydzielane i dostarczane przez bibliotekÄ™.

PodajÄ…c tablicÄ™ elementÃ³w `item', struktury te mogÄ… byÄ‡ zorganizowane w
"stos", potencjalnie zwracajÄ…c wiele wynikÃ³w w pojedynczym wywoÅ‚aniu
funkcji. W ten sposÃ³b na "stos" moÅ¼na patrzeÄ‡ jak na rekord zmiennej
dÅ‚ugoÅ›ci, ktÃ³rego zawartoÅ›Ä‡ i porzÄ…dek sÄ… okreÅ›lane wyÅ‚Ä…cznie przez
uÅ¼ytkownika.

CzÄ™Å›ciÄ… kaÅ¼dego interfejsu jest para unikatowych enumeratorÃ³w. Elementy
`noop' i `extra' istniejÄ… w celu trzymania wartoÅ›ci uÅ¼ytkownika. Nie sÄ…
nigdy ustawiane przez bibliotekÄ™, ale wynik `extra' jest zerowany przy
kaÅ¼dej interakcji z bibliotekÄ….

Plik nagÅ‚Ã³wkowy \fBinterfejsu\fP jest podstawowym dokumentem przy tworzeniu
programu uÅ¼ytkownika. Tam moÅ¼na zaleÅºÄ‡ dostÄ™pne elementy, ich typ zwracany
(nazwÄ™ skÅ‚adowej struktury `result') oraz ÅºrÃ³dÅ‚a tych wartoÅ›ci. Tam teÅ¼ sÄ…
udokumentowane dodatkowe enumeratory czy struktury.

.SS UÅ¼ycie
PoniÅ¼ej znajduje siÄ™ typowa sekwencja wywoÅ‚aÅ„ tych intefejsÃ³w.

.nf
1. \fBprocps_new()\fP
2. \fBprocps_get()\fP, \fBprocps_select()\fP lub \fBprocps_reap()\fP
3. \fBprocps_unref()\fP
.fi

Funkcja \fBget\fP sÅ‚uÅ¼y do odczytania struktury `result' dla pojedynczego
elementu `item'. Alternatywnie dostÄ™pne jest makro \fBGET\fP, kiedy istotna
jest tylko wartoÅ›Ä‡ zwracana.

Funkcja \fBselect\fP potrafi odczytaÄ‡ wiele struktur `result' z pojedynczego
"stosu".

Na potrzeby nieprzewidywalnych, zmiennych wynikÃ³w, interfejsy \fBdiskstats\fP,
\fBslabinfo\fP oraz \fBstat\fP eksportujÄ… funkcjÄ™ \fBreap\fP. SÅ‚uÅ¼y do odczytania
wielu "stosÃ³w", zawierajÄ…cych wiele struktur `result'. Opcjonalnie
uÅ¼ytkownik moÅ¼e zdecydowaÄ‡, aby wykonaÄ‡ \fBsort\fP tych wynikÃ³w.

Aby wykorzystaÄ‡ dowolny "stos" i dostaÄ‡ siÄ™ do poszczegÃ³lnych struktur
`result', wymagana jest wartoÅ›Ä‡ \fIrelative_enum\fP, jak widaÄ‡ w makrze \fBVAL\fP
zdefiniowanym w pliku nagÅ‚Ã³wkowym. Takie wartoÅ›ci mogÄ… byÄ‡ sztywno
zakodowane od 0 do numitems\-1. Zwykle jednak tÄ™ potrzebÄ™ zaspokaja siÄ™
tworzÄ…c wÅ‚asne enumeratory odpowiadajÄ…ce kolejnoÅ›ci tablicy `items'.

.SS ZastrzeÅ¼enia
Funkcje \fBnew\fP, \fBref\fP, \fBunref\fP, \fBget\fP oraz \fBselect\fP sÄ… dostÄ™pne we
wszystkich piÄ™ciu interfejsach.

W przypadku funkcji \fBnew\fP i \fBunref\fP, trzeba przekazaÄ‡ adres wskaÅºnika do
struktury \fIinfo\fP. W przypadku \fBnew\fP musi byÄ‡ zainicjowany na NULL. W
przypadku \fBunref\fP zostanie ustawiony na NULL, jeÅ›li licznik odwoÅ‚aÅ„
osiÄ…gnie zero.

W przypadku interfejsu \fBdiskstats\fP, parametr \fIname\fP funkcji \fBget\fP i
\fBselect\fP okreÅ›la nazwÄ™ dysku lub partycji

W przypadku interfejsu \fBstat\fP, parametr \fIwhat\fP funkcji \fBreap\fP okreÅ›la,
czy zebrane majÄ… byÄ‡ dane tylko dla CPU, czy dla CPU oraz NUMA.

Przy uÅ¼ywaniu funkcji \fBsort\fP, parametry \fIstacks\fP i \fInumstacked\fP sÄ… zwykle
zwracame w strukturze `reaped'.

.SH "WARTOÅšÄ† ZWRACANA"
.SS "Funkcje zwracajÄ…ce `int'"
BÅ‚Ä…d jest oznaczany poprzez liczbÄ™ ujemnÄ…, bÄ™dÄ…cÄ… liczbÄ… przeciwnÄ… do znanej
wartoÅ›ci errno.h.

Sukces jest oznaczany wartoÅ›ciÄ… zerowÄ…. Jednak funkcje \fBref\fP i \fBunref\fP
zwracajÄ… bieÅ¼Ä…cy licznik odwoÅ‚aÅ„ struktury \fIinfo\fP.

.SS "Funkcje zwracajÄ…ce adres"
BÅ‚Ä…d jest oznaczany zwracanym wskaÅºnikiem NULL, a powÃ³d moÅ¼na znaleÅºÄ‡ w
wartoÅ›ci errno.

Sukces jest oznaczany wskaÅºnikiem na nazwanÄ… strukturÄ™.

.SH DIAGNOSTYKA
Aby pomÃ³c przy rozwijaniu programÃ³w, jest udogodnienie pozwalajÄ…ce zapewniÄ‡,
Å¼e odwoÅ‚ania do skÅ‚adowej `result' zgadzajÄ… siÄ™ z oczekiwaniami
biblioteki. ZakÅ‚ada, Å¼e do dostÄ™pu do wartoÅ›ci `result' jest uÅ¼ywane makro
udostÄ™pnione w pliku nagÅ‚Ã³wkowym.

TÄ™ opcjÄ™ moÅ¼na wÅ‚Ä…czyÄ‡ w jeden z poniÅ¼szych sposobÃ³w, a wszystkie
niezgodnoÅ›ci bÄ™dÄ… wypisane na \fBstderr\fP.

.IP 1) 3
Dodanie CFLAGS='\-DXTRA_PROCPS_DEBUG' do pozostaÅ‚ych uÅ¼ytych opcji
\&amp;./configure.

.IP 2) 3
Dodanie #include &lt;procps/xtra\-procps\-debug.h&gt; do dowolnego programu
\fIpo\fP nagÅ‚Ã³wkach nazwanych interfejsÃ³w.

.PP
Ta opcja weryfikacji dodaje istotny narzut. W zwiÄ…zku z tym waÅ¼ne jest, Å¼eby
\fInie\fP byÅ‚a wÅ‚Ä…czona w binariach produkcyjnych.

.SH "ZOBACZ TAKÅ»E"
\fBprocps_misc\fP(3), \fBprocps_pids\fP(3), \fBproc\fP(5).
</pre></body></html>