Hvordan lage en navngitt data

Hvordan lage en navngitt data


En kraftig trekk ved Linux, sammen med andre varianter av Unix, er muligheten for en kommando for å gi input til en annen kommando ved hjelp av et rør. Representert på tastaturet som den vertikale linjen "|", rør tillate egne programmer for å snakke med hverandre uten å bli utviklet for å gjøre det. På denne måte, rør tjene som en iboende fremgangsmåte for å Inter Process Communication, eller IPC. Rør kan også anvendes eksplisitt å muliggjøre fremgangsmåter for å kommunisere. For å lette prosesser identifiserer rør laget for bruk, er det praktisk å tildele røret en forutsigbar navn som en prosess kan åpne for lesing eller skriving. Følg disse trinnene for å nevne et rør.

Bruksanvisning

1 Start en teksteditor og åpne en C / C ++ kildefilen.

2 Lag den ene enden av et rør ved hjelp av libc mkfifo API i form int mkfifo (const char * banenavn, mode_t modus); For eksempel mkfifo ( "/ tmp / mypipe", 0666) ;.

3 Kontroller returverdien av den mkfifo API for å sikre at den er lik null, da det betyr suksess. Merk at hvis returverdien er ikke null, kan feilen ikke bli fatal. For å fastslå om røret er levedyktig, sjekke verdien av Feilkode. Hvis Feilkode er lik EEXIST, da røret finnes allerede, og programmet kan fortsette.

4 Etablere retning av kommunikasjon og påkalle libc åpen API spesifisere navnet på røret tildelte i trinn 2 samt modus, lese eller skrive. For eksempel: open ( "/ tmp / mypipe", 0_RDONLY) ;. Legg merke til at et rør kan bare åpnes av en gitt prosess som enten lesbare eller skrivbare, men ikke begge deler. Hvis det aktuelle programmet vil lese fra røret, deretter gjenta trinn 1 til 4 i et annet program for å skape den prosess som vil skrive til røret.

5 Åpne en kommando terminal og utføre en lang liste på "/ tmp" katalogen. Legg merke til tilstedeværelsen av filen "mypipe" og den ledende attributt er angitt som "p", for å indikere at det er riktig type rør. Hvis prøven prosessen choses for å åpne røret som lesbar, kan du bruke echo-kommandoen på kommandolinjen for å omdirigere informasjon til røret for bruk av prosessen. For eksempel, hvis du skriver "echo Hei> / tmp / mypipe" det vil være tilgjengelig for prosessen når du trykker på Enter.