Re: Re: Jak poslat programu textovou zprávu na standardni vstup stdin?
Pavel Kankovsky
peak na argo.troja.mff.cuni.cz
Neděle Říjen 29 18:23:22 CET 2006
On 26 Oct 2006, Jakub Zverina wrote:
> Zkousel jsem asi toto:
> "konzole 1":
> cat|sed "s/a/b/"
> "konzole 2":
> zjistit pid toho sedu
> echo a > /proc/2682/fd/0
>
> a na "konzoli 1" se objevi "b", tzn. sed to dostal na stdin, kde to
> ocekaval, a zpracoval. Zajimave, ze bez toho `cat|` mi to nejak neslo
To "cat|" způsobilo, že na vstupu sed-u byla roura. A platí, že jak se do
roury volá, tak se z roury ozývá. Poněkud překvapivé na tom je, že jste
vlastně jakoby zapisoval do čtecího konce roury, ale zdá se, že linuxové
jádro s tím až takové štráchy nedělá (nahlédnutím do fs/pipe.c lze
zjistit, že pod rourou je schovaný syntetický inode, který je sám o
sobě takový hermafroditní a dají se přes něj otevřít oba konce roury bez
ohledu na to, přes jaký konec jsme se k tomu inodu dostali).
--Pavel Kankovsky aka Peak [ Boycott Microsoft--http://www.vcnet.com/bms ]
"Resistance is futile. Open your source code and prepare for assimilation."
Další informace o konferenci Linux