Problemas com Pipe Multiplo em C

1. Problemas com Pipe Multiplo em C

Victor Guimarães Nunes
nunesvictor

(usa Ubuntu)

Enviado em 05/05/2009 - 15:52h

galera, o seguinte... to fazendo um shell pra faculdade, tudo normal...
o problema é na hora de criar o pipe ex.: ls -l | sort

consegui fazer funcionar com 2 comaandos ( como no exemplo acima ), mas nem idéia de como fazer isso dinâmico. alguma ajuda?

o código da funcao de execucao da linha de comando:

void execute( char **cmd, int cmdIndex )
{
int fd[2];
int estado;
pid_t pid;

if( getArrayLength( cmd ) > 1 )
{
pipe( fd );
pid = fork();

if( pid > 0 )
{
char **cmd1 = stringToArray( cmd[cmdIndex], " " );

close( fd[0] );
dup2( fd[1],1 );
close( fd[1] );

if( execv( cmd1[0], cmd1 ) )
puts( "erro pipe 1" );
}
else if( pid == 0 )
{
char **cmd2 = stringToArray( cmd[cmdIndex+1], "" );

close( fd[1] );
dup2( fd[0],0 );
close( fd[0] );

if( execv( cmd2[0], cmd2 ) )
puts( "erro pipe 2" );
}
}
}

help!!!


  






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts