syscalls(2)

Från Wiki.linux.se
Version från den 22 november 2024 kl. 07.50 av Admin (diskussion | bidrag) (→‎Källor)
(skillnad) ← Äldre version | Nuvarande version (skillnad) | Nyare version → (skillnad)
Hoppa till navigering Hoppa till sök

syscalls(2) — Linux manual page

Namn

syscalls - Linux systemanrop

Synopsis

Linux systemanrop.

Beskrivning

Ett systemanrop är det grundläggande gränssnittet mellan en applikation och Linux-kärnan.

Systemanrop och biblioteksomslagsfunktioner

Systemanrop anropas vanligtvis inte direkt, utan via omslagsfunktioner i glibc (eller eventuellt något annat bibliotek). För detaljer om direkt anrop av ett systemanrop, se intro(2). Ofta, men inte alltid, är namnet på omslagsfunktionen detsamma som namnet på det systemanrop som den anropar. Till exempel innehåller glibc en funktion chdir() som anropar det underliggande "chdir"-systemanropet.

Ofta är glibc-omslagsfunktionen ganska tunn och utför inte mycket mer än att kopiera argument till rätt register innan den anropar systemanropet, och sedan ställer in errno på lämpligt sätt efter att systemanropet har returnerat. (Dessa är samma steg som utförs av syscall(2), som kan användas för att anropa systemanrop för vilka ingen omslagsfunktion tillhandahålls.) Observera: systemanrop indikerar ett fel genom att returnera ett negativt felnummer till anroparen på arkitekturer utan ett separat felregister/-flagga, som noterat i syscall(2). När detta händer negerar omslagsfunktionen det returnerade felnumret (för att göra det positivt), kopierar det till errno och returnerar -1 till anroparen av omslagsfunktionen.

Ibland utför dock omslagsfunktionen lite extra arbete innan den anropar systemanropet. Till exempel finns det numera (av skäl som beskrivs nedan) två relaterade systemanrop, truncate(2) och truncate64(2), och glibc-funktionen truncate() kontrollerar vilka av dessa systemanrop som tillhandahålls av kärnan och avgör vilket som ska användas.

Lista över systemanrop

Nedan följer en lista över Linux-systemanrop. I listan indikerar kolumnen "Kernel" kärnversionen för de systemanrop som var nya i Linux 2.2, eller som har dykt upp sedan den kärnversionen. Observera följande punkter:

- Om ingen kärnversion anges, dök systemanropet upp i Linux 1.0 eller tidigare.

- Om ett systemanrop är markerat med "1.2" betyder det att systemanropet troligen dök upp i en Linux 1.1.x-kärnversion och först dök upp i en stabil kärna med 1.2. (Utvecklingen av Linux 1.2-kärnan initierades från en gren av Linux 1.0.6 via Linux 1.1.x-instabila kärnserien.)

- Om ett systemanrop är markerat med "2.0" betyder det att systemanropet troligen dök upp i en Linux 1.3.x-kärnversion och först dök upp i en stabil kärna med Linux 2.0. (Utvecklingen av Linux 2.0-kärnan initierades från en gren av Linux 1.2.x, någonstans runt Linux 1.2.10, via Linux 1.3.x-instabila kärnserien.)

- Om ett systemanrop är markerat med "2.2" betyder det att systemanropet troligen dök upp i en Linux 2.1.x-kärnversion och först dök upp i en stabil kärna med Linux 2.2.0. (Utvecklingen av Linux 2.2-kärnan initierades från en gren av Linux 2.0.21 via Linux 2.1.x-instabila kärnserien.)

- Om ett systemanrop är markerat med "2.4" betyder det att systemanropet troligen dök upp i en Linux 2.3.x-kärnversion och först dök upp i en stabil kärna med Linux 2.4.0. (Utvecklingen av Linux 2.4-kärnan initierades från en gren av Linux 2.2.8 via Linux 2.3.x-instabila kärnserien.)

- Om ett systemanrop är markerat med "2.6" betyder det att systemanropet troligen dök upp i en Linux 2.5.x-kärnversion och först dök upp i en stabil kärna med Linux 2.6.0. (Utvecklingen av Linux 2.6 initierades från en gren av Linux 2.4.15 via Linux 2.5.x-instabila kärnserien.)

- Från och med Linux 2.6.0 ändrades utvecklingsmodellen, och nya systemanrop kan dyka upp i varje Linux 2.6.x-release. I detta fall visas det exakta versionsnumret där systemanropet dök upp.

Se även

- intro(2)

- syscall(2)

- errno(3)

- truncate(2)

- truncate64(2)


Sidslut

Orginalhemsidan på Engelska :https://man7.org/linux/man-pages/man2/syscalls.2.html
PHP


Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till PC Service som har sponsrat Linux.se med webbhotell.