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