C Programmering

Hvordan bruke Fsync-systemanrop i C

Hvordan bruke Fsync-systemanrop i C

Fsync brukes til å koordinere en fils kjernetilstand med hvilken som helst lagringsenhet. Systemanropet til fsync () passerer (“spyler”) alt endret innholdsinnhold fra (i.e., endret buffer for) filbeskrivelsen fd til en diskmaskin (eller hvilken som helst annen evigvarende lagringsenhet) der en slik fil forblir. Det rydder til og med opp filens detaljer. Fsync-systemanropet fungerer på en enkelt fil. Eventuelle oppdateringer av filen blir spylt. Hvis flere oppgaver redigeres til den samme filen, blir fsync-systemanropet suspendert før alle oppdateringer er overført til platen. Hvis systemet kunngjør at konverteringen er vellykket, vil samtalen bli blokkert. Bruk av fsync () garanterer ikke at filens inkludering i filsystemet kanskje også har kommet inn på platen. En passende fsync () på mappens filbeskrivelse er imidlertid nødvendig for dette.

Installer forutsetninger:

Så fsync-systemanropet trenger noen biblioteker som skal installeres for å jobbe med det. Hvis noen ønsker å sjekke tilleggsinformasjonen om fsync-kommandoen, må han / hun ha manpages-dev-pakker installert på Linux-systemet. Så vi får se hvordan vi gjør det. Bruk Ctrl + Alt + T-tasten fra tastaturet for å starte Linux-kommandolinjeterminalen. Nå, for å installere manpages-dev-pakken, kan du prøve følgende apt install-kommando nedenfor, etterfulgt av en pakke som heter "manpages-dev". Installasjonsprosessen krever at kontopassordet ditt for at Linux skal fortsette. Så skriv inn ditt nåværende konto Linux-passord og trykk Enter-tasten fra tastaturet. Det vil raskt starte installasjonen og konfigurere manpages i Linux-systemet ditt. Len deg tilbake til den er ferdig med installasjonsprosessen.

$ sudo apt installer manpages-dev

Etter installasjonen kan du bruke kommandoen nedenfor for å sjekke informasjonen om fsync-systemet.

$ mann 2 fsync

Utgangen for man-kommandoen er lagt til nedenfor. Du kan lese all informasjon om den for å forstå konseptet med "fsync" -anropet i Linux-systemet. Trykk på “q” -knappen fra tastaturet for å avslutte dette vinduet.

En annen forutsetning som kreves for å bruke fsync-anrops-ID GCC-kompilatoren. Dette er fordi vi bruker fsync-systemanropet i C-språket. Så for å utføre og kompilere C-språkkode, må vi ha noen kompilatorpakker installert i systemet vårt. Så her har vi en GCC-kompilator. Du kan installere den ved hjelp av den veldig enkle sudo apt-kommandoen som nedenfor. Det vil fullføre installasjonen på få minutter, og du kan enkelt skrive C-koder i filer.

$ sudo apt installere gcc

Eksempel:

La oss begynne å jobbe med fsync-kommandoen for å forstå den godt. Først og fremst må du opprette en C-type fil ved hjelp av nano-editoren i kommandolinjeskallet. For dette, prøv å kjøre den enkle spørringen nedenfor i skallet.

$ nano ny.c

Etter at filen er opprettet og åpnet, er det på tide å skrive litt C-kode. Så du kan se den lange koden nedenfor i nano-filen. De første 7 linjene har overskriftsfiler som er nødvendige for å bli inkludert i redigeringsfilen for riktig bruk av "fsync" -anropet. Etter disse headerfilene har vi definert hovedfunksjonen med heltallretur som "int". Denne funksjonen inneholder to parametere. Den ene er en heltallstype, og den andre er en tegntypematrise. I løpet av hovedfunksjonen har vi erklært en tegntypestreng "* str" og definert en strengtypeverdi til den. Etter det har vi også deklarert to variabler av heltallstype som vil bli brukt som filbeskrivere i flere linjer. I neste linje har vi brukt opprett systemanropsfunksjonen til å lage en ny fil med navnet “test.txt ”og lese- og skriverettigheter som en motregning i parameter. Vi har returnert dette filinnholdet til en filbeskrivelse “fd”. Vi har definert if uttalelse i denne C-koden. Hvis verdien eller indekspekeren til filbeskriveren er "-1", vil det kaste feilen ved å ringe til creat () -funksjonen for å opprette en ny fil. Beskrivelsen “fd” mindre enn “-1” betyr at pekeren er i -1 posisjon.

Avkjøringsfunksjonen () vil bli ringt opp før avslutningen av if-setningen. Deretter har vi brukt skrivemetoden for å samle strengverdien fra bufferen og skrive den til filtesten.txt ”ved hjelp av filbeskrivelsen“ fd ”. Disse dataene er returnert til variabelen “ret”. Hvis verdien av variabelen “Ret” er mindre enn -1, betyr dette at dataene ikke er skrevet til en fil. Så du må ringe skrivefunksjonen igjen og avslutte if-setningen. Vi har definert fsync-systemanropet og gir det en filbeskrivelse "fd" som en parameterverdi for å synkronisere filbeskrivelsen til en diskenhet. Når du kaller "lukk" -metoden, vil den raskt skrive dataene inn i en diskstasjon og lukke filbeskrivelsen. Etter det blir hovedfunksjonen stengt. Lagre denne filen ved hjelp av hurtigtasten "Ctrl + S", og lukk filen "ny.c ”ved hjelp av hurtigtasten“ Ctrl + X ”.

Etter å ha lukket nano-filen, er det nå på tide at du kompilerer den ovennevnte koden. For å samle kode må vi bruke gcc-kompilatoren. Så utfør gcc-spørringen nedenfor for å kompilere det "nye.c ”-fil.

$ gcc ny.c

Nå må vi utføre denne koden ved hjelp av enkle a.kommandoen i skallet som nedenfor. Denne kommandoen vil ganske enkelt utføre koden og returnere ingenting, men dataene er skrevet til en diskstasjon bak på prosessen.

$ ./en.ute

Kontroller filen som er opprettet i C-koden, og den har en strengverdi i seg.

$ kattest.tekst

Konklusjon

Vi har kort diskutert et veldig enkelt og lineært eksempel på fsync-systemets kall for å forstå konseptet.Jeg håper nå kan du enkelt bruke fsync-systemanropet i Linux.

Beste Gamepad Mapping Apps for Linux
Hvis du liker å spille spill på Linux med en gamepad i stedet for et vanlig tastatur- og musinngangssystem, er det noen nyttige apper for deg. Mange P...
Nyttige verktøy for Linux-spillere
Hvis du liker å spille spill på Linux, er sjansen stor for at du har brukt apper og verktøy som Wine, Lutris og OBS Studio for å forbedre spilloppleve...
HD Remastered Games for Linux som aldri hadde en Linux-utgave tidligere
Mange spillutviklere og utgivere kommer med HD-remaster av gamle spill for å forlenge franchisetiden, vennligst fans som ber om kompatibilitet med mod...