intro — introduktion till systemanrop
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)EN.
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)EN). 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)EN.
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)EN.
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)EN. Historiskt var detta även möjligt genom att använda ett av _syscall-makrona som beskrivs i _syscall(2)EN.
Se i huvudet av manualsidans källkod för författarna och copyright-villkor. Observera att dessa kan skilja från sida till sida!
_syscall(2)EN, syscall(2)EN, syscalls(2)EN, errno(3)EN, intro(3), capabilities(7)EN, credentials(7)EN, feature_test_macros(7)EN, mq_overview(7)EN, path_resolution(7)EN, pipe(7)EN, pty(7)EN, sem_overview(7)EN, shm_overview(7)EN, signal(7)EN, socket(7)EN, standards(7)EN, symlink(7)EN, system_data_types(7)EN, sysvipc(7)EN, time(7)EN
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.