Ir para conteúdo
Fórum Script Brasil
  • 0

Usando pipes


demonofnight

Pergunta

Dae, estou tentando usar pipes com um sort como exemplo, quero fazer uma enrada de dados e pegar a saida, porem o codigo não funciona, estou meio perdido na teoria, alguém poderia me ajudar?

#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <iostream>
#define WRITE 1
#define READ 0

using namespace std;

int main()
{
        char    buf[5];
        int     fd_in[2], fd_out[2],
                c;
        pipe(fd_in);pipe(fd_out);
        if(fork() == 0)
        {
                close(fd_in[WRITE]);dup2(fd_in[READ], READ);
        close(fd_out[READ]); dup2(fd_out[WRITE], WRITE);

        dup2(fd_out[WRITE], WRITE); //stdout -> pipe's write (everything what would go to stdout will go to the pipe's write...
                execlp("sort", "sort", NULL);
        }

        write(fd_out[1], "c\n", 2);
        write(fd_out[1], "a\n", 2);
        write(fd_out[1], "b\n", 2);

        while((c = read(fd_in[0], buf, 5)) > 0)
                write(1, buf, c);

        return  0;
}

Vlw pelo help galera

Editado por kuroi
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...