[so] [Tema2] [Windows] Pipe-uri anonime
Stancu Florin
eu at stancuflor.in
Sat Mar 22 23:26:11 EET 2014
Adrian Sendroiu <molecula2788 at ...> writes:
>
> Florin Stancu <eu <at> stancuflor.in> writes:
>
> > Salut,
> >
> > Am și eu o mică nelămurire în legătură cu cititrea dintr-un pipe
> > anonim. Când mai exact se termină această citire?
> >
> > De exemplu: Pentru comanda "ls | cat", se creeaza un pipe intre ls si
> > cat. Procesul "ls" are redirectat stdout in hWrite și procesul "cat"
> > are redirectat stdin în hRead. Totul merge destul de ok doar că
> > procesul "cat" nu termină citirea din pipe. Menționez că la
> > terminarea procesului "ls" închid hWrite.
> >
> > Am încercat și cu comenzi mai mari de forma "ls | cat | cat | cat |
> > grep "Tema"", iar rezultatul este corect. Dar și aici primul proces
> > "cat" nu se oprește din citirea din pipe.
> >
> > Florin.
>
> Trebuie să închizi pipe-urile înainte să faci WaitForSingleObject pentru
> a aștepta procesele. Vezi exemplul din soluția laboratorului 3.
> _______________________________________________
> http://ocw.cs.pub.ro/courses/so/info/lista-discutii
Nu trebuie neapărat să închizi pipe-urile înainte de WaitForSingleObject. La
mine era problema că parcurgeam și creeam procesele top-dowm (prima dată era
creat procesul "cat" apoi "ls"). Trebuie să faci asta bottom-up (prima dată
"ls" apoi "cat"). Am schimbat locul unde se reintra în recursivitate și a
mers.
Oricum, mulțumesc că m-ai pus să mă uit în laborator că atunci mi-a picat
fisa.
More information about the so
mailing list