[so] [Tema2][Linux] Numarul de fork-uri necesare pentru implementarea pipe-ului

Costin Lupu costin.lup at gmail.com
Tue Mar 29 16:23:36 EEST 2016


Salutare, Teodor,

On Tue, 2016-03-29 at 16:02 +0300, Teodor Ciuraru via so wrote:
> Salut!
> 
> Legat de implementarea pipe-ului, am observat că pe Internet (pe Stack, cel puțin) sunt două tabere, tabară celor care prezintă implementarea pipe-ului cu un singur fork() și cea a celor care implementează cu două fork-uri, întrepătrunse.

Nu înțeleg ce vrei să zici nici prin "un singur fork()", nici prin
"fork-uri întrepătrunse". Care sunt link-urile unde ai găsit aceste
informații?

> Am încercat ambele variante și testele 9 și 10 trec în ambele cazuri.
> 
> Aș dori să știu de ce îmi trec testele, atât având un singur fork() la nivelul funcției do_on_pipe(), cât în cazul celor două fork-uri.
> 
> Singura diferență pe care am sesizat-o la implementarea cu un singur fork() este că, cu toate că testele trec, rulând o comandă cu operatorul pipe îmi închide mini-shell-ul deschis (ceea ce ar putea fi cauzat de altceva, dar în cazul altor comenzi nu se întâmplă).
> 
> Care este varianta corectă de implementare?

Costin



More information about the so mailing list