Provided by: procps_4.0.4-4ubuntu3_amd64 bug

NAMN

       procps — API för att komma åt information på systemnivå i filsystemet /proc

SYNOPSIS

       Fem  distinkta gränssnitt representeras i detta synopsis namnges efter filen de använder i
       pseudofilsystemet /proc: diskstats, meminfo, slabinfo, stat och vmstat.

           #include <libproc2/namngivet_gränssnitt.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 *namn,      ]   endast diskstats-api:et
               enum item post);

           struct stack *procps_select (
               struct info *info,
           [   const char *namn,      ]   endast diskstats-api:et
               enum item *poster,
               int postantal);

           struct reaped *procps_reap (
               struct info *info,
           [   enum reap_type vad,   ]   endast stat-api:et
               enum item *poster,
               int postantal);

           struct stack **procps_sort (
               struct info *info,
               struct stack *stackar[],
               int stackantal,
               enum item sortpost,
               enum sort_order ordning);

           Ovanstående   funktioner   och    poster    är    generella    men    det    specifika
           namngivna_gränssnittet  skall  också  vara en del av alla identifierare. Till exempel,
           ”procps_new” skulle faktiskt vara ”procps_meminfo_new” och "info" skulle faktiskt vara
           ”diskstats_info”, etc.

           Samma namngivna_gränssnitt används i varje huvudfilnamn med en ändelse .h tillagd.

           Länka med -lproc2.

BESKRIVNING

   Översikt
       Centralt  för dessa gränssnitt är en enkel ”resultat”-post so avspelgar ett ”element” plus
       dess  värde  (i  en  union  med  typer  från  standardspråket  C  som   medlemmar).   Alla
       ”resultat”-poster allokeras automatiskt och levereras av biblioteket.

       Genom att ange en vektor av ”element” kan dessa strukturer organiseras som en ”stack”, som
       potentiellt ger många resultat med ett enda funktionsanrop. Alltså kan en ”stack” ses  som
       en post med variabel längd vars innehåll och ordning helt avgörs av användaren.

       Som  en  del  av  varje  gränssnitt  finns  det två unika uppräknare. Elementen ”noop” och
       ”extra” finns för att hålla användarvärden. De sätts aldrig av bilbioteket, men resultatet
       ”extra” kommer nollställas med varje biblioteksinteratkion.

       Huvudfilen  namngivet_gränssnitt kommer vara ett viktigt dokument under programutveckling.
       Där hittar man tillgängliga element, deras returtyper (medlemsnamn  i  posten  ”resultat”)
       och källan för sådana värden. Ytterligare uppräknare och poster dokumenteras också där.

   Användning
       Följande skulle vara en typisk sekvens av anrop till dessa gränssnitt.

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

       Funktionen  get  används  för  att  hämta  posten  ”resultat”  för  ett  visst  ”element”.
       Alternativt är ett GET-makro tillgängligt när endast returvärdet är intressant.

       Funktionen select kan hämta flera ”resultat”-poster i en enda ”stack”.

       För oförutsägbara variabla resultat exporterar gränssnitten diskstats, slabinfo  och  stat
       en  funktion  reap. Den används för att hämta multipla ”stackar” där var och en innehåller
       flera ”resultat”-poster. Om önskas kan en användare välja att sortera dessa resultat.

       För att använda någon ”stack”, och  komma  åt  individuella  ”resultat”-poster,  krävs  en
       relativ_uppräkning  som  visas  i makrot VAL definierat i huvudfilen. Sådana värden skulle
       kunna hårdkodas som: 0 till antalelement-1. Dock uppfylls detta behov  typiskt  genom  att
       skapa ens egna uppräknare motsvarande ordningen i vektorn av ”element”.

   Förbehåll
       Funktionerna new, ref, unref, get och select är tillgängliga i alla fem gränssnitten.

       För  funktionerna  new och unref måste adressen till en info-postpekare ges. Med new måste
       den  ha  initierats  till  NULL.  Med  unref  kommer  den   återställas   till   NULL   om
       referensräknaren når noll.

       Vad gäller gränssnittet diskstats identifierar en parameter namn till funktionerna get och
       select en disk eller ett partitionsnamn

       För gränssnittet stat identifierar en vad-parameter till funktionen reap huruvida data för
       endast CPU:er eller både CPU:er och NUMA-noder skall samlas in.

       När man använder funktionen sort skall normalt parametrarna stackar och stackantal normalt
       vara de som returneras av posten ”reaped”.

RETURVÄRDE

   Funktioner som returnerar en ”int”
       Ett fel kommer indikera ett negativt tal som alltid är inversen av något känt  värde  från
       errno.h.

       Lyckat  resultat markeras med ett returvärde av noll. Dock returnerar funktionerna ref och
       unref det aktuella värdet på referensräknaren för info-posten.

   Funktioner som returnerar en ”adress”
       Ett fel kommer indikeras av en NULL-returpekare och orsaken går att hitta i dett  formella
       errno-värdet.

       Lyckat resultat indikeras med en pekare till den namngivna posten.

FELSÖKNING

       För  att  hjälpa  till  i  programutveckling  finns  det ett medel som kan hjälpa till att
       säkerställa   att   ”resultat”-medlemsreferenser   stämmer   överens   med    bibliotekets
       förväntningar. Det förutsätter att ett av de tillgängliga makrona i huvudfilen används för
       att komma åt ”resultat”-värdet.

       Denna funktion  kan  aktiveras  genom  någon  av  de  följande  metoderna  och  eventuella
       avvikelser kommer att skrivas till standard fel.

       1) Lägg  till CFLAGS='-DXTRA_PROCPS_DEBUG' till eventuella övriga flaggor som används till
          ./configure.

       2) Lägg till #include <procps/xtra-procps-debug.h> till alla program  efter  inkluderandet
          av de namngivna gränssnitten.

       Denna  verifieringsfunktion  orsakar  en  väsentlig kostnad. Därför är det viktigt att den
       inte är aktiverad för produktions-/utgåvebyggen.

SE ÄVEN

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