Provided by: procps_4.0.4-4ubuntu3.2_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).

libproc2                                          Augusti 2022                                         PROCPS(3)