C Programmering

Sådan bruges Skriv systemopkald i C

Sådan bruges Skriv systemopkald i C

Systemopkaldet fungerer som den primære gateway mellem programmer og Linux-operativsystemets kerne. Selvom du næsten helt sikkert skulle have et systemopkald gennem hele din C-programmeringskarriere, uanset om du sigter mod enestående produktivitet eller en bestemt funktionstilstand, er Glibc-arkivet eller andre standardbiblioteker, der findes i populære Linux-distroer, tilstrækkeligt for langt størstedelen af ​​din krav. I denne vejledning etablerer vi et koncept om Write System-opkaldet på C-sprog.

Syntaks:

#omfatte
ssize_t skriv (int fd, const void * buf, size_t count);

I denne ovenstående syntaks viser den første linje biblioteket til systemopkald. På den anden linje står fd for en filbeskrivelse, som faktisk er et tal, der angiver en processs åbne fil. Nøgleordet * buf står for buffer. Dette indeholder alle data i det. Næste er optælling. Det er antallet af bytes, der skal skrives til en filbeskrivelse fra bufferen.

Installere forudsætninger:

For at køre en C-sprogkode skal du først installere nogle pakker i Linux-distribution. Hvis du vil se yderligere oplysninger om skrive systemopkaldet, skal du installere manpages-dev-pakken for at gøre det. For at åbne terminalen ved hjælp af Ctrl + Alt + T genvejstasten. Efter åbning af det, skriv nedenstående apt install-kommando efterfulgt af manpages-dev-nøgleordet for at installere manpages.

$ sudo apt install manpages-dev

Det vil tage lidt tid at installere manpages. Vent på, at den bliver færdig.

Efter installationen kan du se de yderligere oplysninger om “skriv” systemopkaldet via nedenstående man-kommando i skallen.

$ mand 2 skriver

Outputman-siden for kommandoen “skriv” er angivet nedenfor. Du kan læse oplysningerne om det. Tryk på q for at afslutte manualen.

Nu er det tid til at installere "Gcc" -pakken i dit Linux-system for at arbejde på C-sproget. For det skal du åbne skallen og skrive nedenstående apt install-kommando efterfulgt af nøgleordet "gcc".

$ sudo apt installere gcc

I mellemtiden, under installationen, kan det bede dig om at bekræfte denne handling ved installation ved at trykke på “y” for at fortsætte og “n” for at stoppe den. Så tryk på “y” -tasten og tryk på Enter-tasten.

Det vil blive installeret i dit system inden for nogle minutter, og de sidste outputlinjer vil være som vist i nedenstående snapshot.

Eksempler:

Lad os have nogle eksempler på et "skriv" systemopkald i vores Linux-distribution. Derfor skal du åbne kommandolinjeskallen og oprette en ny C-fil i den med punkt "c" -udvidelsen. Du skal bruge nedenstående nano-kommando til hurtigt at oprette og åbne den. Vi har givet det et navn som ”nyt.c ”.

$ nano nyt.c

Nedenstående vindue åbnes. Nu skal du skrive den påførte kode i denne fil. I denne kode har vi inkluderet en unistd.h bibliotek først. Så har vi oprettet hovedfunktionen, og inden for denne funktion har vi oprettet et "skriv" systemopkald. I dette systemopkald er den allerførste parameter filbeskrivelsen. I dette tilfælde repræsenterer heltal 1 skærmbilledet til outputenheden, og det er rettet. Så vores output vises på skærmen. Den anden parameter viser bufferdataene. Du kan tilføje noget til det. Og den sidste parameter viser antallet af data, der er angivet i bufferparameteren. Som vi har nævnt 5 som optællingsnummer, vil det kun vise de første 5 byte af bufferdataene og ignorere de tilbage byte. Gem denne kode ved hjælp af Ctrl + S genvejstast, og afslut denne fil ved hjælp af Ctrl + X kommandoen.

#omfatte
Int main ()
Skriv (1, "Aqsa Yasin", 5);

Nu i terminalen, prøv nedenstående gcc-kommando for at kompilere denne nyoprettede kode med et filnavn.

$ gcc nyt.c

Lad os tjekke denne kode ved hjælp af standard a.ud fil oprettet ved kørselstid. Så prøv nedenstående a.ud kommando for at kontrollere output fra "skriv" systemopkald. Vi er nødt til at bruge det med “./ ”For at vælge filen fra det aktuelle bibliotek.

$ ./en.ud

Det output, du kan se, har kun vist ordet “Aqsa” på grund af antallet 5.

Lad os ændre vores kode lidt. Vi har ændret optællingsnummeret til 11, fordi vi har i alt 11 byte i vores bufferdata "Aqsa Yasin". Så denne gang vil output vise hele bytes med strengdata "Aqsa Yasin". Gem denne fil ved hjælp af Ctrl + S, og afslut ved hjælp af Ctrl + X genvejstasten.

Lad os kompilere den opdaterede kode ved hjælp af den nyinstallerede gcc-compiler til Linux-distribution. Prøv den samme gcc-kommando sammen med navnet på en fil som “ny.c ”.

$ gcc nyt.c

Vis nu output af den samme kode ved hjælp af den forrige “a.ud ”kommando som nedenfor. Outputtet viser den fulde streng “Aqsa Yasin” i bufferen.

$ ./en.ud

Lad os se, hvordan koden fungerer, når vi tager antallet, der er større end det samlede antal byte, som bufferdataene indeholder. Så vi har brugt optællingen som 30. Gem og luk filen.

Kompiler den samme opdaterede fil ved hjælp af gcc-kommandoen som nedenfor.

$ gcc nyt.c

Udfør nu filen ved hjælp af a.ud-kommando, og output viser bufferdata samt noget skraldværdi med dem som vist i snapshot-output nedenfor.$ ./en.ud

Du kan også kontrollere det samlede antal bytes, der er skrevet i filen ved hjælp af nedenstående kode i den samme fil.

Kompilér koden ved hjælp af gcc-instruktion.

$ gcc nyt.c

Outputtet viser det samlede antal bytes inklusive bufferdata og linjeskift ved hjælp af a.ud kommando.

$ ./en.ud

Konklusion:

I denne vejledning har vi uddybet konceptet til at bruge "Skriv" systemopkald i C. Prøv alle eksemplerne for at forstå ideen om "skriv" systemopkald ved hjælp af denne artikel.

Vulkan til Linux-brugere
Med hver nye generation af grafikkort ser vi spiludviklere skubbe grænserne for grafisk troskab og komme et skridt tættere på fotorealisme. Men på tro...
OpenTTD vs Simutrans
Oprettelse af din egen transportsimulering kan være sjovt, afslappende og ekstremt lokkende. Derfor skal du sørge for at prøve så mange spil som mulig...
OpenTTD Tutorial
OpenTTD er et af de mest populære forretningssimuleringsspil derude. I dette spil skal du oprette en vidunderlig transportvirksomhed. Du starter dog i...