Scroll to navigation

INTRO(2) Linux programmerarmanual INTRO(2)

NAMN

intro — introduktion till systemanrop

BESKRIVNING

Avsnitt 1 av manualen beskriver Linux systemanrop. Ett systemanrop är en ingång in i Linuxkärnan. Vanligen anropas inte systemanrop direkt; de flesta systemanrop har en motsvarande omslagsfunktion i C-biblioteket vilken utför stegen som behövs (t.ex., att göra en trap in i kärnläge) för att anropa systemanropet. Alltså ser det ut på samma sätt när man gör ett systemanrop som när man anropar en normal funktion.

I många fall gör inte omslagsfunktionen i C-biblioteket mer än att:

  • kopiera argumenten och systemanropets unika nummer till registren där kärnan förväntar sig dem;
  • gör en trap till kärnläge, vid den punkten gör kärnan systemanropets verkliga arbete;
  • sätter errno om systemanropet returnerar ett felnummer när kärnan returnerar CPU:n till användarläget.

Dock, i några fall kan en omslagsfunktion göra betydligt mer än detta, till exempel, utföra någon förbearbetning av argumenten före den gör en trap in i kärnläge, eller efterbearbetning av värden som returnerats av systemanropet. Där detta är fallet försöker manualsidorna i avsnitt 2 i allmänhet notera detaljerna både om (vanligen GNU) C-bibliotekets API-gränssnitt och det råa systemanropet. Vanligen fokuserar den huvudsakliga BESKRIVNINGen på C-bibliotekets gränssnitt, och skillnader mot systemanropet täcks i avsnittet NOTERINGAR.

För en lista över Linux systemanrop, se syscalls(2).

RETURVÄRDE

Vid fel returnerar de flesta systemanrop ett negativt felnummer (d.v.s. det negativa värdet av en av konstanterna som beskrivs i errno(3)). C-bibliotekets omslag döljer denna detalj från anroparen: när ett systemanrop returnerar ett negativt värde kopierar omslaget det absoluta värdet in i variabeln errno, och returnerar -1 som returvärde från omslaget.

Värdet som returnerar av ett lyckat systemanrop beror på anropet. Många systemanrop returnerar 0 när det går bra, men en del kan returnera värden skilda från noll vid ett lyckat anrop. Detaljerna beskrivs i de individuella manualsidorna.

I några fall måste programmeraren definiera ett funktionstestmakro för att få tillgång till deklarationen av ett systemanrop från huvudfilerna som anges i manualsidans SYNOPSIS-avsnitt. (Där de behövs måste dessa funktionstestmakron definieras före inkluderingen av några huvudfiler.) I sådana fall beskrivs det nödvändiga makrot i manualsidan. För ytterligare information om funktionstestmakron, se feature_test_macros(7).

ÖVERENSSTÄMMER MED

Vissa termer och förkortningar används för att indikera UNIX-varianter och -standarder vilka anropen i detta avsnitt följer. Se standards(7).

NOTERINGAR

Direkt anrop

I de flesta fall är det onödigt att anropa ett systemanrop direkt, men det finns tillfällen då Standard-C-biblioteket inte implementerar en trevlig omslagsfunktion åt en. I sådana fall måste programmeraren manuellt anropa systemanropet med syscall(2). Historiskt var detta även möjligt genom att använda ett av _syscall-makrona som beskrivs i _syscall(2).

Se i huvudet av manualsidans källkod för författarna och copyright-villkor. Observera att dessa kan skilja från sida till sida!

SE ÄVEN

_syscall(2), syscall(2), syscalls(2), errno(3), intro(3), capabilities(7), credentials(7), feature_test_macros(7), mq_overview(7), path_resolution(7), pipe(7), pty(7), sem_overview(7), shm_overview(7), signal(7), socket(7), standards(7), svipc(7), symlink(7), time(7)

KOLOFON

Denna sida är del av version 4.16 av Linux man-pages-projektet. En beskrivning av projektet, information om hur man rapporterar fel och den senaste versionen av denna sida kan hittas på https://www.kernel.org/doc/man-pages/.

ÖVERSÄTTNING

Den svenska översättningen av denna manualsida skapades av Göran Uddeborg <goeran@uddeborg.se>

Denna översättning är fri dokumentation; läs GNU General Public License Version 3 eller senare för upphovsrättsvillkor. Vi tar INGET ANSVAR.

Om du hittar fel i översättningen av denna manualsida, skicka ett mail till Tp-sv@listor.tp-sv.se.

15 september 2017 Linux