/* * Exemplo de uso de pipes. O mesmo processo fala e escuta. */ #include #include #include #include #include int main (void) { int mypipe[2]; char *str_origem = "Oi!"; int nwrite = strlen(str_origem) + 1; char *str_destino = (char*) malloc(nwrite); int nread; pipe (mypipe); /* Cria o pipe mypipe. mypipe[0] - leitura mypipe[1] - escrita */ while (1) { nwrite = write(mypipe[1], str_origem, strlen(str_origem) + 1); printf("Processo escreveu %d caracteres: %s\n", nwrite, str_origem); } nread = read(mypipe[0], str_destino, nwrite); printf("Processo leu %d caracteres: %s\n", nread, str_destino); close (mypipe[0]); /* Fecha canal de leitura */ close (mypipe[1]); /* Fecha canal de escrita */ return 0; }