Portál AbcLinuxu, 16. července 2025 22:43


Dotaz: Implementace roury v C

5.10.2003 16:53 lzap
Implementace roury v C
Přečteno: 64×
Odpovědět | Admin
Vazeni,

mam pred sebou problem udelat program v jazyce C, ktery bude predstavovat kolonu. Tedy

#pipe "echo 3\n1\n2\n" "sort"

bude ekvivalentni k

#echo 3\n1\n2\n | sort.

Docetl jsem se, ze volanim "pipe" mohu vytvorit dva deskriptory, jeden pro cteni a druhy pro zapis. Take jsem se docetl, ze jeden proces musi deskriptor pro zapis otevrit a pro cteni uzavrit a druhy proces to musi udelat opacne. Problem je, ze nevim, ktery ma co udelat a jak mam udelat take to, ze posledni proces v kolone vsechno vypise na stdout.

Muzete mi rict jak na to pripadne mi primo na prikladu ukazat, co kde otevrit, zavrit a presmerovat?

ps - hlavni program "pipe" musi na vsechny procesy pockat, docetl jsem se, ze syst. volani "wait" ceka na podrizeny proces, jak ale implementovat cekani na vsechny podrizene procesy, ktere mam ulozeny v poli pid_t* pids ? neni jednoducha smycka a pouziti volani waitpid neefektivni? slo by to lepe?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

5.10.2003 17:57 Noxius | skóre: 13
Rozbalit Rozbalit vše Implementace roury v C
Odpovědět | | Sbalit | Link | Blokovat | Admin
http://osa.dcs.elf.stuba.sk/os/tutorial_c/

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.