INTRO(2) Linuxprogrammørens manual INTRO(2)

intro - introduktion til systemkald

Afsnit 2 af manualen beskriver Linux' systemkald. Et systemkald er et indgangspunkt til Linuxkernen. Normalt igangsættes systemkald ikke direkte: I stedet for har de fleste systemkald tilsvarende C-biblioteksomslagsfunktioner, der udfører trinene krævet (f.eks. trapping til kernetilstand) for at igangsætte systemkaldet. Dermed ligner det at lave et systemkald en igangsættelse af en normal biblioteksfunktion.

I mange tilfælde udfører C-biblioteksomslagsfunktionen ikke mere end:

  • kopiering af argumenter og det unikke systemkaldnummer til registrene, hvor kernen forventer dem;
  • trapping til kernetilstand, hvorefter kernen udfører det faktiske abrejde for systemkaldet;
  • angivelse af errno hvis systemkaldet returnerer et fejlnummmer, når kernen returnerer CPU'en til brugertilstand.

I nogle få tilfælde kan en omslagsfunktion dog gøre mere ende dette, for eksempel udføre lidt forberedelse af argumenterne før trapping til kernetilstand, eller udsættelse af værdier returneret af systemkaldet. Hvor dette er tilfældet, så forsøger manualsiderne i afsnit 2 generelt at bemærke detaljerne for både (normalt GNU) C-biblioteks API-grænsefladen og det rå systemkald. Oftest, vil hovedbeskrivelsen fokusere på C-biblioteksgrænsefladen, og forskelle for systemkaldet er dækkes i NOTER-afsnittet.

For en liste over Linux' systemkald, se syscalls(2).

Ved fejl returnerer de fleste systemkald et negativt fejlnummer (dvs. den negeret værdi af en af konstanterne beskrevet i errno(3)). C-biblioteksomslaget skjuler denne detalje fra kalderen: Når et systemkald returnerer en negativ værdi, så kopierer omslaget den absolutte værdi ind i errno-værdien og returnerer -1 som returværdi for omslaget.

Værdien returneret af et succesfuldt systemkald afhænger af kaldet. Mange systemkald returnerer 0 ved succes, men nogle kan returnere andre værdier end 0 fra et succesfuldt kald. Detaljerne er beskrevet i de individuelle manualsider.

I nogle tilfælde må programmøren definere en funktionstestmakro for at kunne se erklæringen for et systemkald fra teksthovedfilen angivet i manualsidens SYNOPSIS-afsnit. (Hvor krævet, må disse funktionstekstmakroer være defineret før inkludering af enhver teksthovedfil). I sådanne tilfælde, er den krævede makro beskrevet i manualsiden. For yderligere information om funktionstestmakroer, se feature_test_macros(7).

Bestemte termer og forkortelser bruges til at indikere UNIX-varianter og standarder som kald i dette afsnit er i overensstemmelse med. Se standards(7).

I de fleste tilfælde er det unødvendigt at starte et systemkald direkte, men der er tidspunkter, hvor C-standardbiblioteket ikke implementerer en pænt omslagsfunktion for dig. I dette tilfælde skal programmøren starte systemkaldet via syscall(2). Historisk var dette også muligt via en af _syscall-makroerne beskrevet i _Syscall(2).

Kig i teksthovedet for manualsidens kilde for forfatter(e) og ophavsretsbetingelser. Bemærk at disse kan være forskellige fra side til side!

_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)

Denne side er en del af udgivelse 5.13 for Linux man-pages-projektet. En beskrivelse af projektet, information om fejlrapporter og den seneste version af denne side, kan findes på https://www.kernel.org/doc/man-pages/.

Oversættere af denne manual til dansk Joe Hansen <joedalton2@yahoo.dk>

Denne oversættelse er gratis dokumentation; læs GNU General Public License version 3 eller nyere for ophavsretbetingelser. Der er INGEN ANSVAR.

Hvis du støder på fejl i oversættelsen af ​​denne vejledning, skal du sende en besked til debian-l10n-danish@lists.debian.org.

27. august 2021 Linux