mkfifo c -funksjon

mkfifo c -funksjon
“En tilpasset FIFO -fil med navnet filnavn opprettes av mkfifo -funksjonen. En fil som oppfører seg som et rør blir referert til som en FIFO eller et navngitt rør. For skriving åpner en operasjon FIFO, og for lesing, en annen. For å åpne et navngitt rør, kan vi bruke bibliotekfunksjonen “Mkfifo ()”. Pathname of the FIFO og FIFOs modus er de to parametrene som "mkfifo ()" -funksjonen godtar. Filens tillatelser er angitt ved hjelp av modusparameteren; For mer informasjon, se tildeling av filtillatelser. Den typiske returverdien fra Mkfifo er 0, noe som indikerer suksess. I denne guiden vil vi forklare dette konseptet i detalj og utforske et eksempel her der vi vil bruke denne "mkfifo ()" -funksjonen og skrive i en fil og lese den i en annen fil.”

Syntaks
int mkfifo (const char *pathname, mode_t mode);

Eksempel
Vi skal utføre dette eksemplet på Ubuntu 20.04. Først installerer vi GCC -kompilatoren og åpner deretter tekstredigereren til Ubuntu 20.04 og legg litt kode. Vi vil lage to forskjellige filer her og deretter lese/skrive data til disse filene ved å bruke "Mkfifo ()" -funksjonen i C -programmering. For å lage en C -kode, må vi legge toppfilene. “Stdio. H ”overskriftsfil er her, som er standardinngangen/utgangen som inkluderer inngangs-/utgangsinformasjonen. Vi har en "streng. H ”overskriftsfil, og denne overskriftsfilen brukes her for strengfunksjonene. Så har vi “Unistd. H ”overskriftsfil, som brukes til tilgang til API. “Fcntl. H ”brukes til filkontrollen, og“ SYS/STAT.H ”inkluderer byggesteiner som gjør det lettere å lære om filens egenskaper.

Vi inkluderer også “SYS/TYPER.h ”headerfil. Vi bruker "Main ()" -funksjonen etter disse overskriftsfilene, og denne funksjonen erklærer datatypen som "int". Under dette erklærer vi heltallet “int” og navngir det “FD”. Etter dette erklærer og initialiserer vi "røye" som heter "Myfifo" og initialiserer den med "/tmp/fifo". Nå har vi "Mkfifo ()" -funksjonen der vi passerer to parametere. Den første parameteren er "Myfifo", og den andre parameteren er "0666" her. Den første parameteren er banenavnet, og den andre er modusen.

Så erklærer vi to matriser med navnet “Arr1 []” og “Arr2 []” av størrelsen “80”. Vi bruker "mens ()" -løkken her og legger "1" i den. Inne i dette mens Loop har vi forskjellige uttalelser. Vi bruker "Åpne ()" for å lese eller skrive til filen. Vi legger banen til filen som den første parameteren og bruker deretter flagget her som den andre parameteren, som er "O_Wronly". Dette "o_wronly" -flagget brukes her, noe som betyr at vi bare åpner denne filen for å skrive. "Fgets ()" -funksjonen er her for å lese karakterene.

Så har vi "skriv ()" -funksjonen, som brukes til å skrive data fra bufferen som er deklarert av brukeren og deretter lukke denne filen ved å bruke "Close ()" -funksjonen. Etter dette har vi igjen "Open ()" -funksjonen, men denne gangen bruker vi "0_rdonly" -flagget, noe som betyr at denne gangen filen er åpen for skrivebeskyttet. Vi har også "Read ()" som bare brukes til å lese dataene som tidligere ble skrevet til denne filen. Deretter bruker vi "printf" for å gjengi dataene på utgangsskjermen og igjen lukke denne filen ved å bruke "Close ()" -funksjonen. Vi må lukke filen som vi har åpnet. Her lukker vi braketten i stundsløyfen og plasserer "return 0" -uttalelsen nedenfor dette.

Vi oppretter den andre C -koden her ved å legge noen kodelinjer. Vi bruker de samme toppfilene i denne koden, som vi har brukt i koden ovenfor. Så har vi "Main ()" -funksjonen, og inni dette erklærer vi "Int" som "FD1" og "Char" som "Myfifo". "Mkfifo ()" brukes også her på samme måte som vi har brukt den i ovennevnte kode. Her har vi to “char” -arrays av navnet “Str1” og “Str2” og tildeler størrelsen som “80”. "Åpen ()" -funksjonen brukes, og "0_rdonly" -flagget brukes til å indikere at filen er åpen for skrivebeskyttet tilgang denne gangen. Vi har en funksjon som heter “Read ()” som utelukkende brukes til å lese data.

Deretter gjengir vi dataene på utgangsskjermen ved å bruke "printf", og vi lukker denne filen ved å bruke "Close ()" -funksjonen. Filens bane er den første parameteren, og den andre parameteren er flagget, som i dette tilfellet er “O_Wronly.”Vi åpner denne filen for å skrive bare ved å bruke“ O_Wronly ”-flagget i dette tilfellet. Her kan karakterene leses ved hjelp av "fgets ()" -funksjonen. "Skriv ()" -funksjonen brukes til å skrive data fra bufferen som brukeren har erklært før han bruker "Close ()" -funksjonen for å lukke filen.

Nå får vi utgangen ved å åpne to terminaler samtidig og utføre kommandoen på begge terminalene samtidig. Først sammenstiller vi begge filene på separate terminaler. På den første terminalen kjører vi kommandoen som er gitt nedenfor og flytter deretter til den andre terminalen.

På den andre terminalen legger vi denne kommandoen for å samle den andre C -kodefilen. Etter vellykket sammenstilling av begge kommandoene på forskjellige terminaler, skal vi utføre begge kodene.

For utførelse satte vi den gitte kommandoen på den første terminalen; Ingenting vil vises her.

Nå, på den andre terminalen, må vi utføre denne koden ved å skrive denne kommandoen som vises her. Ingenting vises også her.

På den første terminalen, skriv “Hallo”, trykk Enter og åpne den andre terminalen.

Denne "hei" vises også her på den andre terminalen, som vi har skrevet på den første terminalen.

Her kan du se utgangene fra begge filene på bildene, som er gitt nedenfor.

Konklusjon

Vi presenterer denne guiden for å vise deg hvordan "mkfifo ()" -funksjonen fungerer i C -programmering. Vi har forklart denne "mkfifo ()" -funksjonen i detalj her, og vi demonstrerte også et eksempel her der vi har brukt denne "mkfifo ()" -funksjonen. Vi har gitt utgangen her også, så du vil enkelt se hvordan du bruker denne "mkfifo ()" -funksjonen i C. Vi håper at denne guiden vil forbedre kunnskapen din om funksjonene til C -programmering.