C Programmering

Hvordan bruke Skriv systemanrop i C

Hvordan bruke Skriv systemanrop i C

Systemanropet fungerer som den primære gatewayen mellom programmer og Linux-operativsystemkjernen. Selv om du nesten helt sikkert vil trenge å ha et systemanrop gjennom hele din C-programmeringskarriere, uansett om du sikter mot eksepsjonell produktivitet eller en viss stil, vil Glibc-arkivet eller andre standardbiblioteker som finnes i populære Linux-distroer være tilstrekkelig for de aller fleste av dine krav. I denne guiden vil vi etablere et konsept om Write System-samtalen på C-språk.

Syntaks:

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

I denne syntaksen ovenfor viser den første linjen biblioteket for systemanrop. På andre linje står fd for en filbeskrivelse som faktisk er et tall som spesifiserer en prosesss åpne fil. Nøkkelordet * buf står for buffer. Dette inneholder alle data i den. Neste er telling. Det er antall byte som skal skrives til en filbeskrivelse fra bufferen.

Installer forutsetninger:

For å kjøre hvilken som helst C-språkkode, må du først installere noen pakker i Linux-distribusjon. Hvis du vil se ytterligere informasjon om skrive systemanropet, må du installere manpages-dev-pakken for å gjøre det. Å åpne terminalen ved hjelp av hurtigtasten Ctrl + Alt + T. Etter å ha åpnet den, skriv kommandoen apt install nedenfor fulgt av manpages-dev-nøkkelordet for å installere manpages.

$ sudo apt installer manpages-dev

Det vil ta litt tid å installere manpages. Vent til den blir ferdig.

Etter installasjonen kan du se tilleggsinformasjonen om "skriv" systemanrop via mannskommandoen nedenfor i skallet.

$ mann 2 skriver

Utgangssiden for kommandoen “skriv” er gitt nedenfor. Du kan lese informasjonen om den. Trykk på q for å avslutte manualen.

Nå er det på tide å installere "Gcc" -pakken i Linux-systemet ditt for å fungere på C-språket. For det, åpne skallet og skriv kommandoen apt install nedenfor, fulgt av nøkkelordet “gcc”.

$ sudo apt installere gcc

I mellomtiden, under installasjonen, kan det be deg om å bekrefte denne installasjonen ved å trykke “y” for å fortsette og “n” for å stoppe den. Så trykk på “y” -tasten og trykk Enter-tasten.

Den vil bli installert i systemet ditt i løpet av noen minutter, og de siste linjene for utdata vil være som vist i stillbildet nedenfor.

Eksempler:

La oss ha noen eksempler på et "skriv" systemanrop i Linux-distribusjonen. Åpne derfor kommandolinjeskallet og opprett en ny C-fil i den med punktet "c". Du må bruke nano-kommandoen nedenfor for å raskt opprette og åpne den. Vi har gitt det et navn som “nytt.c ”.

$ nano ny.c

Vinduet nedenfor åpnes. Nå må du skrive den påførte koden i denne filen. I denne koden har vi tatt med en unistd.h biblioteket først. Så har vi opprettet hovedfunksjonen, og innenfor denne funksjonen har vi opprettet et "skriv" systemanrop. I denne systemanropet er den aller første parameteren filbeskrivelsen. I dette tilfellet representerer heltall 1 skjermen på utdataenheten, og den er løst. Så resultatet blir vist på skjermen. Den andre parameteren viser bufferdataene. Du kan legge til noe i det. Og den siste parameteren viser antall tall for dataene gitt i bufferparameteren. Som vi har nevnt 5 som antall, vil det bare vise de første 5 byte av bufferdata og ignorere byte igjen. Lagre denne koden ved hjelp av hurtigtasten Ctrl + S, og avslutt denne filen ved å bruke Ctrl + X-kommandoen.

#inkludere
Int main ()
Skriv (1, “Aqsa Yasin”, 5);

Nå i terminalen, prøv gcc-kommandoen nedenfor for å kompilere denne nyopprettede koden med et filnavn.

$ gcc ny.c

La oss sjekke ut denne koden ved å bruke standard a.ut fil opprettet på kjøretid. Så prøv nedenfor a.kommando for å sjekke utdataene fra "skriv" systemanropet. Vi må bruke den med “./ ”For å velge filen fra gjeldende katalog.

$ ./en.ute

Utgangen du kan se har bare vist ordet “Aqsa” på grunn av antall 5.

La oss endre koden vår litt. Vi har endret tellingstallet til 11 fordi vi har totalt 11 byte i bufferdataene våre "Aqsa Yasin". Så denne gangen vil utgangen vise hele byte med strengdata "Aqsa Yasin". Lagre denne filen ved hjelp av Ctrl + S og avslutt med hurtigtasten Ctrl + X.

La oss kompilere den oppdaterte koden ved hjelp av den nylig installerte gcc-kompilatoren for Linux-distribusjon. Prøv den samme gcc-kommandoen sammen med navnet på en fil som “ny.c ”.

$ gcc ny.c

Vis nå utgangen av samme kode ved hjelp av forrige “a.ut ”-kommandoen som nedenfor. Utgangen viser hele strengen “Aqsa Yasin” til bufferen.

$ ./en.ute

La oss se hvordan koden fungerer når vi tar telletallet større enn det totale antallet byte bufferdataene inneholder. Så vi har brukt tellingen som 30. Lagre og lukk filen.

Kompilere den samme oppdaterte filen ved hjelp av gcc-kommandoen som nedenfor.

$ gcc ny.c

Utfør nå filen ved hjelp av a.ut kommando, og utgangen vil vise bufferdataene samt noe søppelverdi med den som vist i øyeblikksbildeutgangen nedenfor.$ ./en.ute

Du kan også sjekke det totale antallet byte som er skrevet inn i filen ved å bruke koden nedenfor i samme fil.

Kompiler koden etter gcc-instruksjon.

$ gcc ny.c

Utgangen viser det totale antallet byte, inkludert bufferdata og linjeskift, ved hjelp av a.ut kommando.

$ ./en.ute

Konklusjon:

I denne opplæringen har vi utdypet konseptet for å bruke "Skriv" systemanrop i C. Prøv alle eksemplene for å forstå ideen om "skriv" systemanrop ved hjelp av denne artikkelen.

Kjemp om Wesnoth-opplæringen
Kampen om Wesnoth er et av de mest populære open source-strategispillene du kan spille på dette tidspunktet. Ikke bare har dette spillet vært i utvikl...
0 A.D. Opplæringen
Ut av de mange strategispillene der ute, 0 A.D. klarer å skille seg ut som en omfattende tittel og et veldig dypt, taktisk spill til tross for å være ...
Unity3D opplæring
Introduksjon til Unity 3D Unity 3D er en kraftig spillutviklingsmotor. Det er kryssplattform, det er det lar deg lage spill for mobil, web, stasjonær ...