Hoe maak je een Named Pipe

Hoe maak je een Named Pipe


Een krachtige functie van Linux, samen met de andere varianten van Unix, is de mogelijkheid voor een opdracht te geven de invoer naar een andere opdracht met behulp van een pijp. Vertegenwoordigd op het toetsenbord als de verticale streep "|", pijpen kunnen afzonderlijke programma's worden met elkaar praten zonder ontwikkeld om dit te doen. Buizen dienen deze wijze, als een inherent methode of Inter Process Communication, IPC. Pijpen kunnen ook expliciet worden gebruikt om processen te communiceren. Om te vergemakkelijken processen identificeren de pijp gemaakt voor gebruik, is het handig om het toewijzen van de pijp een voorspelbare naam waarmee een proces kan openen voor lezen of schrijven. Ga als volgt te werk om een pijp te noemen.

Instructies

1

Start een teksteditor en opent u het bronbestand van een C/C++.

2

Maak één uiteinde van een pijp met behulp van de mkfifo van libc API in het formulier int mkfifo (const char * padnaam, mode_t modus); Bijvoorbeeld, mkfifo ("/ tmp/mypipe", 0666);.

3

Controleer de geretourneerde waarde van de mkfifo API om ervoor te zorgen dat het gelijk aan nul is, zoals dit blijkt uit succes. Merk op dat als de geretourneerde waarde niet nul is, de fout kan niet fataal zijn. Om te bepalen als de pijp haalbaar is, de waarde van errno te controleren. Als errno gelijk aan EEXIST is, dan de pijp al bestaat en het programma kan blijven.

4

Vaststellen van de richting van communicatie en aanroepen van de open API van libc, vermelding van de naam van de pipe toegewezen in stap 2, alsmede de modus, lezen of schrijven. Bijvoorbeeld: open ("/ tmp/mypipe", 0_RDONLY);. Merk op dat een pijp alleen kan worden geopend door een bepaald proces als leesbare of beschrijfbare, maar niet beide. Als het huidige programma uit de pipe lezen zal, dan Herhaal stap 1 t/m 4 in een ander programma maken het proces dat de pijp zal schrijven.

5

Open een terminal commando en het uitvoeren van een lange lijst op de "/ tmp" directory. Opmerking de aanwezigheid van het bestand "mypipe" en het belangrijkste kenmerk is ingesteld als 'p' om aan te geven dat het de juiste soort pijp. Als het monster proces choses om te openen de pijp als leesbaar, de opdracht echo op de opdrachtregel omleiden van informatie naar de pijp voor gebruik door het proces. Als u typt bijvoorbeeld "echo Hello >/tmp/mypipe" het beschikbaar zal zijn voor het proces wanneer u op Enter drukt.