Hvordan du bruker lseek systemanrop i c

Hvordan du bruker lseek systemanrop i c

Lseek -systemanropet har blitt brukt til å lese noen spesifikke tegn eller data fra en fil eller for å skrive noe innhold på det spesifikke stedet for en hvilken som helst fil. Dette betyr at du kan lese eller skrive fra mellom innholdet i en fil.

Syntaks:

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

Denne "lseek" -systemanropet krever to overskriftsfiler, e.g., “Sys/typer.H ”og“ Unistd.h ”. Lseek -systemanropet krever tre parametere. Den første er "FD", som er en filbeskrivelse. Den andre er "forskjøvet", brukes til å plassere pekeren. Og den tredje parameteren, "hvorfra", brukes til å spesifisere plasseringen av en filpeker, e.g., begynnelse, slutt, midt.

Installer Manpages:

For å sjekke den ekstra informasjonen angående systemanrop, må du installere Manpages-Dev-pakken. Så prøv å starte Linux Shell -terminalen ved hjelp. Etter at du har lansert kommandoteterminalen, utfør den APT-installasjonsspørsmålet nedenfor for å installere Manpages-Dev-biblioteket. Det krever at gjeldende kontokode for kontoen din fortsetter med installasjonen. Skriv inn passordet og trykk på Enter -tasten fra skrivemaskinen. Installasjonsprosessen vil bli startet og begynne å samle informasjon.

$ sudo apt installer manpages-dev

Installasjonsprosessen får deg til å vente litt tid. Etter at installasjonen var fullført, kan du nå sjekke informasjonen om “Lseek” -kommandoen. Så skriv nedenfor “Man 2” -kommandoen sammen med navnet på systemanropet. Som du kan se, har vi sjekket for "lseek" i instruksjonen nedenfor.

$ mann 2 lseek

Mannsiden for "Lseek" -systemanropet er åpnet nedenfor. Du kan få all informasjonen om den.

Installer GCC -kompilator:

Nå er det på tide at vi installerer GCC -kompilatoren for sammenstilling av C -språkfiler. Så du må bruke en veldig enkel apt installasjonskommando i skallet for å installere den mens du bruker kompilatorutvidelsen som nøkkelordnavn nedenfor.

$ sudo apt install GCC

Det vil ta din lille tid å få installasjonen gjort. Etter å ha 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 type fil. Så start terminalen og prøv nedenfor Touch -kommandoen for å opprette en enkel fil som heter "Seek" i hjemmekatalogen til Linux -distribusjonen din.

$ 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 den enkle "katten" -spørringen nedenfor. Innholdet i en fil har noen alfabeter og tall sammen med tegnet “*”.

$ katt søker

La oss opprette en C -type fil “Test.C ”Bruke nano -nøkkelordet for å åpne det direkte med Nano Editor. Prøv å utføre kommandoen nedenfor for å gjøre det.

$ nano test.c

La oss sjekke ett program uten Lseek -kommandoen. Det vil åpne en Nano-tekstredigerer med en C-Type-fil nevnt på oversiden. Skriv nå den nedenfor-skurrende koden fra bildet i redigeringsprogrammet. De første 4 linjene inneholder toppfilene som er nødvendige for å implementere “Lseek” -kommandoen. Etter det er hovedfunksjonen startet. I denne hovedmetoden har vi definert heltall og karaktertype data for videre bruk. Den tredje linjen i hovedfunksjonen har brukt den åpne samtalen for å åpne en fil som heter "Seek", som vi nettopp har opprettet ovenfor, og forskyvningen “O_RDWR” har blitt brukt til å lese og skrive tillatelser. Innholdet fra filen er returnert til filbeskrivende “f”. Etter dette har vi brukt den første lesemetoden for å lese 12 tegndata fra søkefilen. Skrivfunksjonen har blitt brukt til å skrive data på skjermen. En annen Read -kommando har blitt brukt for å få de neste 12 tegnene fra filbeskrivelsen “F”, og skrivekommandoen er å lese de neste 12 tegnene til utdata -skjermen. Fra dette kan vi anta at utdataene vil vise totalt 24 tegn fra filen "Seek". 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 Compiler -kommandoen nedenfor.

$ GCC -test.c

Kjør nå koden til “Testen.C ”-fil for å sjekke utdataene til C -koden som gitt nedenfor. Utgangen har vist 24 -tegnsettet med innhold fra filsøket som nedenfor.

$ ./en.ute

La oss bruke “Lseek” -kommandoen i koden for å sjekke utdataene fra et systemanrop. Så åpne den samme testen.C -fil ved hjelp av Nano -kommandoen nedenfor.

$ nano test.c

Oppdater koden din slik den er. Denne gangen har vi brukt 6 tegn fra innholdsfilen for å bli lest og skrive. Lseek -kommandoen har blitt brukt til å hoppe over de neste 5 tegnene fra innholdsfilen og hoppe til de neste tegnene ved å bruke "Seek_cur" -forskyvningen.

La oss kompilere denne koden igjen.

$ GCC -test.c

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

$ ./en.ute

Eksempel 02:

For å ha noen endringer, la oss endre koden. Åpne filen først.

$ nano test.c

Nå skal vi bruke "Seek_set" -forskyvningen for å fortelle "Lseek" -systemanropet for å vise de neste 6 tegnene fra 10. plassering av en streng.

Sett sammen C -filen.

$ GCC -test.c

Output -kommandoen a.Ut har vist de 6 tegnene fra den 10. indeksen for en streng.

Konklusjon:

Denne guiden har gjort noen enkle eksempler på å bruke “Lseek” systemanropskommandoen for å sjekke eller vise innhold eller data fra hvilken som helst stilling vi ønsker.