Oboustranná roura (pipe)

Oboustranná roura (pipe)
« kdy: 14. 04. 2014, 19:22:41 »
Nazdar!

Chcel by som vediet, ci a ako sa da v Linuxe urobit obojstrannu ruru, tj. ze vystup procesu A je vstupom pre proces B a vystup procesu B je vstupom pre proces A (cize spolu navzajom komunikuju). Vedel by som to spravit pomocou suborov, co sa mi ale nezda ako dobre riesenie, pretoze je pri tom potrebne vyuzit disk.

Dakujem za odpoved.
« Poslední změna: 14. 04. 2014, 21:31:15 od Petr Krčmář »


Kolemjdoucí

Re:Obojstranna rura (pipe)
« Odpověď #1 kdy: 14. 04. 2014, 20:00:12 »
A proč nepoužít dvě normální roury?

anon

Re:Obojstranna rura (pipe)
« Odpověď #2 kdy: 14. 04. 2014, 20:33:22 »
Bud dve normalni nebo pokud oboustranny tak socket

Franta <xkucf03/>

Re:Obojstranna rura (pipe)
« Odpověď #3 kdy: 14. 04. 2014, 20:37:20 »
Zkoušel jsem dvě pojmenované roury, ale to se nenastartuje, pravděpodobně na sebe čekají navzájem.

Funguje ale propojení procesů přes SOCAT.

Kód: [Vybrat]
$ cat a.sh
#!/bin/bash

date;
dd bs=1 | tee záznam.txt

Kód: [Vybrat]
$ socat exec:'./a.sh' exec:'dd bs=1'
Příkaz date vytvoří primární kousek dat a ten pak bude rotovat mezi oběma procesy; tee to pak bude osypávat ještě do souboru, abys viděl, že to něco dělá. Případně to můžeš dát bez tee a jako druhý proces použít měřák pv:

Kód: [Vybrat]
socat exec:'./a.sh' exec:'pv'