[linux] Rura obojsmerna
Ondrej Jombik
nepto na pobox.sk
Neděle Duben 20 16:37:45 CEST 2003
> -> Da sa spravit nieco take, ze prepojim dva programy (shelowske scripty)
> -> rurou a to tak,
> -> ze vyspup pogramu A ide na vstup programu B a vystup programu B ide na
> -> vstup programu A ?
> -> A ak ano tak ako?
> shellovskym skriptom tazko, v C to samozrejme ide. zavolas dvakrat
> pipe(), fork()nes, nastavit v oboch stdin/stdout (teda, ako
> potrebujes)
Toto je oficialny pristup, ktory funguje. Ja som svojho cas potreboval
pospustat lubovolne vela aplikacii a poprepajat im lubovolne vstupy
a vystupy. Kedze som nenasiel schodne riesenie na vsetky mozne pripady,
ako temu svojho rocnikoveho projektu som si zvolil aplikaciu, ktora to
bude riesit.
ep: extended pipelining
ep is a pipeline connector. For most of UNIX user there was a time
they wanted to bend the pipe (ie. make a bidirectional pipe) which
could render many problems to a simple tasks of creating modules.
ep is mostly used for creating a communication tree between several
programs which communicate trhough STDIN, STDOUT and STDERR
pipelines. ep supports cyclic pipelining (A -> B, B -> A) between
processes thus standing for a powerful tool for creating
script-based modular projects.
Bol som si isty, ze sa urcite najde na svete clovek s rovnakym
problemom, tak som hodil o tom zmienku na web [1]. Nikdy som ale
nenabral odvahu releasnut balik. Ty si ma vsak svojim problemom normalne
inspiroval ;-), takze som doladil nejake veci, a uz je to mozne aj
stiahnut [2].
Na kompilaciu a spustenie je nutna kniznica libcfg+ [3], ku ktorej
poslednej 0.6.1 verzii mame dostupne zdrojaky, Debian aj RPM baliky.
Ju taktiez nutne upozornit nato, ze tento softver zatial nevie
workaroundovat (uzasne slovo ;-) rozne bugy v Linuxovom jadre resp.
v samotnom glibc (je na polemiku, ci to vlastne bugy su). Aby som bol
presnejsi, skuste si v lubovolnom shelli toto:
$ rev | cat
Nebude to fungovat, resp. vystup nedostanete az kym nestlacite Ctrl+d.
Naproti tomu toto paradoxne fungovat bude:
$ cat | cat
Len pre uplnost, za spravne spravanie povazujem to druhe, nie to prve.
A viem presne preco to tak je, ale to uz presahuje ramec tohto e-mailu.
Good luck! ;-)
[1] http://platon.sk/projects/ep/
[2] http://platon.sk/projects/release_list_page.php?project_id=1
[3] http://platon.sk/projects/release_list_page.php?project_id=3
--
_/| Ondrej Jombik - nepto na php.net - http://www.nepto.sk - OJ812-RIPE
<_ \ Platon SDG - open source software development - http://platon.sk
`\| UNIX is user friendly. It's selective about who its friends are!
'`
Další informace o konferenci linux