Før vi går videre, må vi forstå syntaks for pread -funksjonen og overskriftsfilene som kreves for denne illustrasjonen. De Unistd Headerfil brukes til å fungere med PREAD -funksjonen. Så her er koden du skal legge inn C -programmeringsspråkfilen:
#inkludereDe pread () Funksjonen inneholder de samme innledende tre parametrene som lese() funksjon, og den fjerde parameteren er forskjøvet for den spesifiserte posisjonen inne i filen. Ethvert forsøk på å kjøre pread () Funksjon på en fil som ikke kan fullføre en søkehandling vil resultere i en feil. Her er syntaks for pread -funksjonen:
ssize_t pread (int file_descriptor, void *buffer, size_t no_of_n_bytes, off_t offset);Denne funksjonen returnerer et ikke-negativt heltall, noe. Hvis den returnerer en negativ verdi, klarer den ikke å lese det spesifiserte antallet byte. Det satte errno til Ebadf (som betyr at filbeskrivelsen ikke er en gyldig fil- eller socketbeskrivelse), Econnreset (En jevnaldrende tvang oppsigelse av en forbindelse), Efault, Enobufs (utilstrekkelige systemressurser for å fullføre samtalen) osv.
For å få detaljene om errno, Vennligst gjør litt på nettet. Lesfunksjonen krever ikke autorisasjon til å lese en fil fra filsystemet eller nettverket.
Eksempel 1
Eksemplet nedenfor åpner en fil og leser data fra den. For å begynne denne opplæringen, start en terminal i Linux, UNIX eller noe annet operativsystem du ønsker. Deretter, som vist nedenfor, flytt fra den gjeldende katalogen til en annen passende arbeidskatalog, eller en "fungerer" -mappe i vårt tilfelle. Bruk “LS” -kommandoen til å vise nesten alle filer og kataloger i arbeidskatalogen. I VIM -redaktøren åpner eller oppretter en ny fil med tittelen “Pread.C ”, en C -programmeringsspråkfil.
Vi bruker VIM -redaktøren for å åpne og lage den. Du kan imidlertid bruke hvilken redaktør du liker, for eksempel nano, tekst osv. Du kan se at vi har en ny.tekst fil i denne listen over kataloger. Denne filen vil bli brukt i vår C -kode nå. Se på følgende terminalskjerm for å visualisere utgangen:
Overskriftsfilene er inkludert i de tre første linjene. Etter det starter hovedmetoden med at den første linjen erklærer to heltallvariabler, i.e., Num og Filedescriptor. Etter det satte vi forskyvningen til 5. Vi definerer en "buffer" -buffer "og setter verdien til" testtekst "i den tredje linjen i hovedfunksjonen. Vi gir brukeren skrivebeskyttet tilgang til ny.tekst fil i det betingede uttrykket ved hjelp av en åpen() funksjon.
Den åpne funksjonen er her for å returnere en deskriptorverdi som er registrert i den arkiverte variabelen. Hvis beskrivelsen får verdien mindre enn 0, er det Perror () Funksjon vil bli utført for å kaste en feil. I andre setning bruker vi PREAD -funksjonen for å overføre verdiene til variablene og størrelsen på funksjonen for å redusere bufferstørrelsen hvis beskrivelsen får verdien større enn 0. Utskriftserklæringen viste utgangen.
Følgende er innholdet i det nye.txt -fil. Bufferteksten er på den tredje linjen, som er forskyvningspunktet. Se på følgende terminalskjerm for å visualisere utgangen:
Bruk nå C -kompilatoren til å kompilere pread.c fil. Vi bruker GCC -kompilatoren for sammenstilling og utførelse av C -kode. I terminalen skriver du "GCC" og legger inn navnet på den nødvendige C -filen, etterfulgt av -o Bytt og navnet på utgangsfilen som er sett i følgende skjermbilde. Kompilatoren vil vise eventuelle feil under samlingen i terminalvinduet. Den nødvendige utdatafilen opprettes hvis samlingen er vellykket og kan bli funnet i arbeidskatalogen.
Utgangen kan svinge avhengig av forskyvningsverdien. Tilsvarende, hvis verdien av bufferen endres, vil utgangen på terminalskjermen utvilsomt endres. Skriv inn følgende kommando i kommandoen for å kjøre utdatafilen. Se på følgende terminalskjerm for å visualisere utgangen:
Nå, ved hjelp av VIM -redaktøren, ønsker vi å oppdatere pread fil og trenger å angi verdien for forskyvning til 8, og for bufferoppdatering, strengen til "dyr" i stedet for "testtekst" som koden som er vist i følgende bilde:
Fordi vi gjorde endringer i programkodefilen vår, må vi nå kompilere koden vår. Samlingsprosessen er den samme som utført i de foregående trinnene. Her er bildet av den nye kompilasjonsskjermen:
Nå må vi skrive ut utdataene på skjermen ved hjelp av produksjon eller Objektfil Vi oppnådd etter å ha fullført kompileringsprosedyren. Se utgangen på terminalskjermen ved å skrive følgende kommando. Utgangen til dette er "dyr". Se på følgende vedlagte terminalskjerm for å visualisere utgangen:
Konklusjon
Denne artikkelen viste bruken av PREAD -funksjonen til C for å lese dataene fra noen tekstfiler i vårt Linux -system i byte. Vi har diskutert hvordan en pread () Funksjonen er forskjellig fra det enkle lese() funksjon på grunn av å bruke et spesifikt punkt for å lese dataene fra en fil.