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