Provided by: procps_4.0.4-4ubuntu3.2_amd64 bug

NUME

       procps - API (interfață de program) pentru a accesa informații la nivel de sistem din sistemul de fișiere
       „/proc

REZUMAT

       Cinci  interfețe  distincte  sunt  reprezentate  în  acest  rezumat  și  numite după fișierele pe care le
       accesează în pseudosistemul de fișiere „/proc”: diskstats, meminfo, slabinfo, stat și vmstat.

           #include <libproc2/interfața_numită.h>

           int procps_new   (struct info **info);
           int procps_ref   (struct info  *info);
           int procps_unref (struct info **info);

           struct result *procps_get (
               struct info *info,
           [   const char *name,      ]   doar interfața programului diskstats
               enum item item);

           struct stack *procps_select (
               struct info *info,
           [   const char *name,      ]   doar interfața programului diskstats
               enum item *items,
               int numitems);

           struct reaped *procps_reap (
               struct info *info,
           [   enum reap_type what,   ]   doar interfața programului stat
               enum item *items,
               int numitems);

           struct stack **procps_sort (
               struct info *info,
               struct stack *stacks[],
               int numstacked,
               enum item sortitem,
               enum sort_order order);

           Funcțiile și structurile de mai sus sunt  generice,  dar  specificația  interfața_numită  ar  fi,  de
           asemenea,   parte   a   oricăror   identificatori.    De   exemplu,   „procps_new”   ar  fi  de  fapt
           „procps_meminfo_new” și „info” ar fi cu adevărat „diskstats_info”, etc.

           Același nume de interfața_numită este folosit în fiecare nume de fișier antet cu un sufix `.h'.

           Legătură cu -lproc2.

DESCRIERE

   Prezentare generală
       Esențial pentru aceste interfețe este o structură simplă de „rezultat” care reflectă  un  „element”  plus
       valoarea acestuia (într-o uniune cu tipuri de limbaj C standard ca membri).  Toate structurile „rezultat”
       sunt alocate și furnizate automat de bibliotecă.

       Prin  specificarea  unei  matrice  de  „elemente”,  aceste  structuri  pot fi organizate ca o „stivă”, cu
       potențialul de-a produce multe rezultate cu un singur apel către funcție.  Astfel,  o  „stivă”  poate  fi
       văzută  ca  o  înregistrare cu lungime variabilă al cărei conținut și ordine sunt determinate exclusiv de
       utilizator.

       Ca parte a fiecărei interfețe există doi enumeratori unici.  Elementele „noop” și „extra” există pentru a
       păstra valorile utilizatorului.  Ele nu sunt niciodată definite de bibliotecă, dar rezultatul „extra”  va
       fi redus la zero cu fiecare interacțiune cu bibliotecă.

       Documentul  de  bază  în  dezvoltarea  unui  program de utilizator va fi fișierul antet interfața_numită.
       Acolo veți găsi elementele disponibile, tipul pe care acestea îl returnează (numele membrului  structurii
       „rezultat)”  și  sursa  acestor  valori.   Acolo  sunt  de  asemenea documentați enumeratori și structuri
       suplimentare.

   Utilizare
       Următoarele linii, ar fi o secvență tipică de apeluri la aceste interfețe.

       1. procps_new()
       2. procps_get(), procps_select() sau procps_reap()
       3. procps_unref()

       Funcția get este folosită pentru a prelua o structură „rezultat” pentru un singur „element”.  Alternativ,
       o macrocomandă GET este disponibilă atunci când doar valoarea returnată este de interes.

       Funcția select poate prelua mai multe structuri „rezultat” într-o singură „stivă”.

       Pentru rezultate variabile imprevizibile, interfețele diskstats, slabinfo și stat exportă o funcție reap.
       Este folosită pentru a prelua mai  multe  „stive”  fiecare  conținând  mai  multe  structuri  „rezultat”.
       Opțional, un utilizator poate alege să sorteze acele rezultate.

       Pentru  a  exploata  orice  „stivă”  și pentru a accesa structuri „rezultat” individuale, este necesar un
       relative_enum, așa cum se arată în macrocomanda VAL definită în fișierul  antet.   Astfel  de  valori  ar
       putea  fi  codificate  ca:  de  la  0  la  numitems-1.   Cu  toate acestea, această nevoie este de obicei
       satisfăcută prin crearea propriilor enumeratori corespunzători ordinii matricei „elemente”.

   Avertismente
       Funcțiile new, ref, unref, get și select sunt disponibile în toate cele cinci interfețe.

       Pentru funcțiile new și unref, trebuie furnizată adresa unui indicator de structură info.  Cu new, acesta
       trebuie să fi fost inițializat la NULL.  Cu unref va fi reinițializat la NULL dacă numărul  de  referințe
       ajunge la zero.

       În  cazul  interfeței  diskstats, un parametru name în funcțiile get și select identifică un nume de disc
       sau partiție

       Pentru interfața stat, un parametru what în funcția reap identifică dacă trebuie adunate date doar pentru
       CPU-uri sau atât pentru CPU-uri cât și pentru nodurile NUMA.

       Când se utilizează funcția sort, parametrii staks și numstacked ar fi în  mod  normal  cei  returnați  în
       structura „reaped”.

VALOARE RETURNATĂ

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

       Succesul este indicat de o valoare  de  returnare  zero.   Cu  toate  acestea,  funcțiile  ref  și  unref
       returnează numărul de referințe curent al structurii info.

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

       Succesul este indicat de un indicator către structura numită.

DEPANAREA

       Pentru a ajuta la dezvoltarea programului, este prevăzută o facilitate care  poate  ajuta  la  asigurarea
       faptului  că  referințele la membrii „rezultate” sunt în concordanță cu așteptările bibliotecii.  Această
       facilitate presupune că macrocomanda furnizată în fișierul antet va fi utilizată pentru a accesa valoarea
       „rezultat”.

       Această caracteristică poate fi activată prin oricare dintre următoarele metode și orice discrepanțe  vor
       fi scrise la ieșirea standard de eroare.

       1) Adaugă CFLAGS='-DXTRA_PROCPS_DEBUG' la orice alte opțiuni ./configure utilizate.

       2) Adaugă  #include <procps/xtra-procps-debug.h> la orice program după comenzile include ale interfețelor
          numite.

       Această caracteristică de verificare implică o suprasarcină substanțială.  Prin urmare, este important ca
       aceasta să nu fie activată pentru o versiune de producție/lansare.

CONSULTAȚI ȘI

       procps_misc(3), procps_pids(3), proc(5).

libproc2                                           august 2022                                         PROCPS(3)