305 — •
fkafcuł 11 Kumuiiikirjp rnlędżyprocesowu: potuki
'
m
. ii
Sta • jtrj ~ £s ::
riL* «ocl3«yt_ję>:.
„ch*x bufor (BUPaiSt ■*.!>; .
ant l&osba sooko*/
•»
owmt Ibufor, ’.\0', 9az«r>£ (butccl 1 ;
odu*yt_jjp - pypHipcAt p.-wwif.c «ró •!“> J f af <oHii*y^.^sp !•? (
hqehi xn*Vc<i — Prn»H(hufQr'i «i r**c£ (rKurJ ł JUfTSCS. adccyt^pp) :
wh*L« <l»ca;«_*na*ov > OJ l
pcintff*Cxyt*flr \n %*\n% buf©*);
li::xtifc x«iAkl>ir - £ c**Arl | bufor, rt *SAGf (chAI> , ftOPSlZ,
******jPJP» *
j.:;luMM<i;«lc:X.y»; pp> \
Ajat(fcXIt ftlttCK**) :
I
«x-Ł<ttC? PAJLLTPił;
w
I
Tc uruchomieniu programu zobaczymy następujący rezultat:
i roren*
t?yt«nr :-
1*t
Jek lo działa?
Program ururlumij powlokę, aby m/winęki ui^uitkuI pop«n* .rdu Ji**ly wszystkich plików, klńryth nazwa /.iczynu się oil pr->n I kuiu/y iw . ora/, przetworzyła symbol potoku i skierowała wyjcie cat na wejście we. W pojedynczym wywołaniu funkcji -opar uruchamiamy powłokę, poIroMiu nr.t i wr faiz pi wodujemy pr/rkimiwanię wyjściu. IVugJWti uruchamiający widzi
Wiko końcowe rezultaty.
• m
Sto przyjrzeniu się wysoknpo7.ionxm*e) funkcji t>::ptv». przejdziemy do opisu funkcji niższego poziomu - u :ir. Udostępnia niw luki nifvlwnizm przekazywania danych pomiędzy dwoma programami, który nie wymaga uruchomienia powłoki w celu interpretacji żądanego polecenia. Daje nam lakże większą kontrolę nad zapisem i
odczytem danvch.
0 0
funkcja pip*_* ma następujący' prototyp:
iLi^ludw •I jjjmul, h>
lot fil** <Wriptor[?]| ;
lXjpip-e przekazywana je*t tablica (wskaźnik do tablicy) dwóch liczb całkowitych, będących deskryptorumi plików. funkcja wypełnia tablicę dwoma nowymi tirskrypłammi plików j zwraca zero. W przypadku błędu zwraca -1 i ustawia