[so] [Tema 1] pipe

Ciprian Mihai Coman ciprianmihai.coman at gmail.com
Fri Mar 12 17:13:53 EET 2010


Salut,

Imi poate explica cineva cum se creaza un pipe intre doua procese pentru
STDOUT -> STDIN. Eu am facut ceva de genul (exemplu pentru ls | grep h):

pipe(fd);
fork
    close(fd[1])
    dup2(fd[0], stdin)
    executa grep
    close(fd[0])
    exit
close(fd[0])
dup2(fd[1],stdout)
executa ls
close(fd[1])
waitpid(proces fork)

Problema este ca nu se termina grep. Aparent stdout din parinte ramane
redirectat catre copil si dupa ce inchid ambele capete ale pipe-ului din
parinte (cout << "here" rezulta in printarea "here" in copil).

Multumesc,
-- 
Ciprian Coman
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/so/attachments/20100312/a95cf298/attachment.htm>


More information about the so mailing list