Fallocate 2 C -funksjon

Fallocate 2 C -funksjon
“Fallocate () -funksjonen brukes slik at den som ringer direkte kan endre plateplassen som er tildelt filen som er referert av FD for en byte-rekkevidde som begynner ved forskyvning og går for Len Bytes. Ved hjelp av Fallocate kan du dele ut eller forhåndsfordelere plateplassen som er tildelt en fil. Preallocation fullføres raskt for filsystemer som implementerer Fallocate -systemet ved å tildele blokker og utpeke dem som uinitialiserte, og trenger ingen IO til datablokkene. Dette er mye raskere enn å lage en fil ved å legge alle nuller i den. Fallocate () -funksjonen returnerer en suksess eller feilutgangsstatus på 0 eller 1.

I denne håndboken vil vi gå over denne ideen i detalj og gi eksempler på C -programmer som bruker "Fallocate ()" -funksjonen. I tillegg vil vi gå over "Fallocate ()" -funksjonens syntaks i denne håndboken og demonstrere hvordan du sender parametere til den når du programmerer i C.”

Syntaks
Følgende er "Fallocate ()" -funksjonens syntaks: Du kan enkelt ta tak i parametrene til denne "Fallocate ()" -funksjonen i C -koden ved å ta en titt på dette.

int Fallocate (int FD, int -modus, off_t offset, off_t len);

Operasjonen som skal sendes ut på det aktuelle området bestemmes av modusparameteren. Fallocate () tildeler plateplass i "Offset" og "Len" -spesifisert område som standardoperasjon (modus er null). Hvis "Offset og Len" er mer enn filområdet, vil filstørrelsen justere. Enhver underregion i området definert av “Offset” og “Len” som var tom før samtalen vil ha sin opprinnelige verdien satt til null. Denne standardoppførselen, som tar sikte på å implementere POSIX Fallocate (3) bibliotekfunksjonen så effektivt som mulig, er veldig lik den for den funksjonen.

En lukrativ samtale garanterer at ytterligere skriver inn i området definert av "Len" og "Offset" vil ikke være mislykket på grunn av utilstrekkelig skiveplass.

Eksempel 1

Eksemplene i denne håndboken vil alle bruke Ubuntu 20.04. Å installere GCC krever å kjøre noen få instruksjoner etter installasjon av Ubuntu 20.04. Installere GCC -kompilatoren vil gjøre det mulig for oss å kjøre denne C -programmeringskoden i Ubuntu 20.04. Når Ubuntu 20.04 har denne kompilatoren lastet, vi åpner tekstredigereren for koding og begynner å legge inn kodelinjer som vil bruke C -programmeringsspråkets "setenv ()" -funksjon.

Ved starten av C -koden bruker vi flere overskriftsfiler. Det eneste vi trenger å gjøre mens vi skriver C -kode er å inkludere overskriftsfilene; Ellers vil ikke C -koden vår ha funksjonene vi trenger. Som du kan bekrefte i denne prøven, har vi “FCNTL. h ”headerfil. Deretter standardinngangs- og output header -filen, “STDIO.H, ”ble plassert på den andre linjen i koden. Så legger vi til en andre overskriftsfil, “Errno”, heltallverdien errno, som er produsert av systemanrop, så vel som noen biblioteksmetoder i tilfelle en feil for å identifisere noe som gikk galt, er definert i errno.h headerfil for C -programmering av standardbiblioteket.

Etter dette har vi “String. H, ”som også er en overskriftsfil som inkluderer funksjonens erklæring, typer samt strenghåndteringsfunksjoner. Nå har vi "Main ()" -funksjonen, og vi må også erklære denne funksjonen som en "int" datatype, så vi legger denne funksjonen her som "int main ()". Vi erklærer da en variabel "FD" av "int" datatype og plasserer "Open ()" -funksjonen her. Vi bruker denne "åpne ()" -funksjonen som brukes til å lese, skrive eller åpne filen for begge.

Når du ikke jobber i samme katalog som filen, bruker du en absolutt bane som begynner med "/". Når du jobber i samme katalog som filen, bruker du en relativ bane, som består av bare filnavnet og dens utvidelse. Her betyr "0_wronly" at vi bare åpner filen for å skrive, og "O_Creat" brukes til å motta en advarsel hvis filen allerede er til stede. S_irusr er en global konstant som finnes i POSIX SYS/STAT. H -fil. Brukerlest autorisasjonsbit er det det heter. Prefikset S_ kan bety "status for", "RUSR" eller "Les av brukeren". Da har vi “S_iwusr”.

For filens eier, angi skriveautorisasjonsbiten. Nedenfor har vi "IF" -tilstanden, og vi plasserer betingelsen om at "FD" er lik "-1". Hvis tilstanden er sann, blir "Perror ()" -funksjonen brukt. Denne "Perror" brukes til å skrive ut feilmeldingen til Stderr. Så erklærer og initialiserer vi igjen "int" -variabelen som heter "Status" og plasserer "posix_fallocate" -funksjonen her og passerer tre parametere. "FD" er den første parameteren, "0" brukes som den andre parameteren, og så har vi "100" som den tredje parameteren for denne "Fallocate" -funksjonen.

Under denne tilstanden til "hvis" -uttalelsen er "status! = 0 ”. Hvis det er sant, vil "printf" -uttalelsen bli utført for å skrive ut feilen på skjermen, og vi har også "retur 0" på slutten av denne koden.

Konklusjon

Denne håndboken demonstrerer hvordan du bruker programmeringsfunksjonen “Fallocate ()” C. "Fallocate ()" -funksjonen er blitt beskrevet fullt ut, sammen med eksempler på hvordan du bruker den i C -programmering. For å hjelpe deg med å forstå hvordan du bruker C “Fallocate ()” -funksjonen og hvordan den returnerer resultatet, har vi også inkludert prøvekoden. Som allerede ble forklart, brukes "Fallocate ()" -metoden i C-programmering slik at den som ringer direkte kan endre plateplassen som er tildelt filen som er referert av FD for et byte-rekkevidde som begynner ved forskyvning og går for Len Bytes. Vi snakket også om det faktum at noen parametere må sendes til "Fallocate ()" -funksjonen. Vi forventer at denne håndboken vil hjelpe deg med din forståelse av C -programmeringsfunksjoner, og du vil kunne gjøre det selv.