IPC:rodic->roura->potomek
Jiri Jindra
jindra na rak.radio.cz
Pondělí Srpen 25 13:51:38 CEST 1997
Dobry den preji,
jak bych zacal?, proste mi to nefunguje a nevim proc
co jsem mel v umyslu?
aby rodicovsky proces zapisoval data pres rouru do procesu potomek,
pricemz kod potomka je prepsan kodem programu-filtr (napr.) more,
stdin potomka je napojen na rouru
smer toku dat rodic -> potomek
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
#include <stdio.h>
void main (void){
pid_t novy;
int roura[2];
if (pipe(roura)==-1) printf("chyba pipe()");
if ((novy=fork())!=-1) {
if (novy==0) { /* potomek */
close(0); /* zavri std. vstup potomka */
if(dup2(0,roura[0])==-1) printf("chyba dup2()");
/* vystup roury prirad std vstup procesu potomka */
close(roura[1]);
if (execlp("more","more",NULL)==-1) printf("chyba execl");
} else { /* rodic */
close(roura[0]); /* zavri vstup do roury */
if (write(roura[1],"text zapsany do roury",20)==-1)
printf("chyba write()");
close(roura[1]);
wait(NULL);
printf("konec \n");
}
}
}
Predem diky za pripadne namety.
+--------------------------------------------------+-----------------------+
| Jiri JINDRA (student) | __ ___ |
| University of Education Hradec Kralove | (_ |________/ |
| Faculty of Management and | __|\, /\ __ |
| Information Technology | / |\ \ / /\ \ |
| E-mail://jindra@iris.vsp.cz (jindra na rak.radio.cz)| | / | \/_|__\ | |
| HTTP://rak.radio.cz/~jindra | \ __ / \ __ / |
+--------------------------------------------------+ |
| Private: Studenec 65, 544 66 HAJNICE, C Z E C H R E P U B L I C |
| phone: +042-437-93189 |
+--------------------------------------------------------------------------+
Další informace o konferenci Linux