C Programmering

Hvordan bruke Lseek System Call i C

Hvordan bruke Lseek System Call i C

Lseek System-anropet har blitt brukt til å lese noen spesifikke tegn eller data fra en fil eller til å skrive noe innhold på den spesifikke plasseringen av en fil. Dette betyr at du kan lese eller skrive mellom innholdet i en fil.

Syntaks:

Off_t lseek (int fd, off_t offset, int hvorfra);

Dette "lseek" -anropet krever to overskriftsfiler, f.eks.g., “Sys / types.h "og" unistd.h ”. Lesesystemanropet krever tre parametere. Den første er "fd", som er en filbeskrivelse. Den andre er "offset", brukt til å plassere pekeren. Og den tredje parameteren "hvorfra" brukes til å spesifisere posisjonen til en filpeker, f.eks.g., begynnelse, slutt, midt.

Installer Manpages:

For å sjekke ekstra informasjon om systemanrop, må du installere manpages-dev-pakken. Så prøv å starte Linux-skallterminalen ved hjelp av hurtigtasten Ctrl + Alt + T eller søk den fra aktivitetsområdet. Etter at du har startet kommandoterminalen, utfør spørringen nedenfor om apt install for å installere manpages-dev-biblioteket. Det krever din nåværende kontokode for å fortsette med installasjonen. Skriv inn passordet og trykk på Enter-tasten fra skrivemaskinen. Installasjonsprosessen vil starte og samle inn informasjon.

$ sudo apt installer manpages-dev

Installasjonsprosessen får deg til å vente litt. Etter at installasjonen er fullført, kan du nå sjekke informasjonen angående kommandoen “lseek”.  Så skriv kommandoen nedenfor "mann 2" sammen med navnet på systemanropet. Som du ser, har vi sjekket for “lseek” i instruksjonen nedenfor.

$ mann 2 lseek

Mannsiden for "lseek" systemanropet er åpnet nedenfor. Du kan få all informasjon om det.

Installer GCC Compiler:

Nå er det på tide for oss å installere GCC-kompilatoren for kompilering av C-språkfiler. Så du må bruke en veldig enkel apt install-kommando i skallet for å installere den mens du bruker kompilatorutvidelsen som søkeordnavn nedenfor.

$ sudo apt installere gcc

Det vil ta litt tid å få installasjonen gjort. Etter at du har installert gcc-pakken, er Linux-systemet ditt klart til å bruke c-språkfiler i den.

Eksempel 01:

Før du går dypt for å forstå konseptet med lseek-systemanropet, må du starte det med en enkel filtype. Så start terminalen og prøv berøringskommandoen nedenfor for å lage en enkel fil som heter "søk" i hjemmekatalogen til Linux-distribusjonen.

$ berøringssøk

Legg til noen data i filen "søk" og lagre den. Du kan se filen "søke" innhold i kommandolinjeskallet ved å bruke det enkle "cat" spørringen nedenfor. Innholdet i en fil har noen alfabet og tall sammen med tegnet "*".

$ kattesøk

La oss lage en C-type filtest.c ”ved å bruke nano-nøkkelordet for å åpne det direkte med Nano-editoren. Prøv å utføre kommandoen nedenfor for å gjøre det.

$ nano test.c

La oss sjekke ett program uten lseek-kommandoen. Det åpner en nano teksteditor med en C-type fil nevnt på oversiden. Skriv nå koden nedenfor fra bildet i editor C-filen. De første 4 linjene inneholder overskriftsfilene som er nødvendige for å implementere kommandoen “lseek”. Etter det er hovedfunksjonen startet. I denne hovedmetoden har vi definert heltall- og karaktertypedata for videre bruk. Den tredje linjen i hovedfunksjonen har brukt den åpne samtalen for å åpne en fil som heter "søk", som vi nettopp har opprettet ovenfor, og forskyvningen "O_RDWR" har blitt brukt til lese- og skrivetillatelser. Innholdet fra filen er returnert til filbeskrivelsen “f”. Etter dette har vi brukt den første lesemetoden for å lese 12 tegn data fra søkefilen. Skrivefunksjonen har blitt brukt til å skrive data inn på skjermen. En annen lesekommando har blitt brukt for å hente de neste 12 tegnene fra filbeskrivelsen “f”, og skrivekommandoen leser de neste 12 tegnene til utgangsskjermen. Fra dette kan vi anta at utgangen vil vise totalt 24 tegn fra filen "søk". Trykk Ctrl + S for å lagre denne filen, og prøv Ctrl + X for å lukke den.

La oss bare kompilere “testen.c ”-fil ved å bruke GCC-kompilatorkommandoen nedenfor.

$ gcc test.c

Kjør nå koden til “testen.c ”-fil for å sjekke utgangen av C-koden som gitt nedenfor. Utdataene har vist 24 tegnsett innhold fra filsøket som nedenfor.

$ ./en.ute

La oss bruke "lseek" -kommandoen i koden for å sjekke utdataene til et systemanrop. Så åpne den samme testen.c-fil ved hjelp av nano-kommandoen nedenfor.

$ nano test.c

Oppdater koden slik den er. Denne gangen har vi brukt 6 tegn fra innholdsfilen til å lese og skrive. Lseek-kommandoen har blitt brukt til å hoppe over de neste 5 tegnene fra innholdsfilen og hoppe til de neste tegnene ved hjelp av "SEEK_CUR" -forskyvningen.

La oss kompilere denne koden igjen.

$ gcc test.c

Utgangen av C-koden ved hjelp av a.kommandoen ut viser de første 6 tegnene, så hopper den over de neste 5 tegnene og viser deretter de påfølgende 6 neste tegnene.

$ ./en.ute

Eksempel 02:

For å få endring, la oss endre koden. Åpne filen først.

$ nano test.c

Nå skal vi bruke "SEEK_SET" forskyvningen for å fortelle "lseek" systemanropet om å vise de neste 6 tegnene fra 10. streng i en streng.

Kompiler C-filen.

$ gcc test.c

Utgangskommandoen a.out har vist de 6 tegnene fra den 10. indeksen til en streng.

Konklusjon:

Denne guiden har gjort noen enkle eksempler på bruk av "lseek" systemanropskommandoen for å kontrollere eller vise innhold eller data fra hvilken som helst posisjon vi ønsker.

Hvordan utvikle et spill på Linux
For et tiår siden ville ikke mange Linux-brukere forutsi at deres favorittoperativsystem en dag ville være en populær spillplattform for kommersielle ...
Åpne kildeporter for kommersielle spillmotorer
Gratis, åpen kildekode og plattformspillmotorrekreasjoner kan brukes til å spille gamle så vel som noen av de ganske nylige spilletitlene. Denne artik...
Beste kommandolinjespill for Linux
Kommandolinjen er ikke bare din største allierte når du bruker Linux, den kan også være kilden til underholdning fordi du kan bruke den til å spille m...