intro(2) | System Calls Manual | 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).
STANDARDER
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).
Författare och copyright-villkor
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), symlink(7), system_data_types(7), sysvipc(7), time(7)
Ö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.
2 maj 2024 | Linux man-pages 6.8 |