bash nonblocking citanie cez pipe
mam skript, ktory ide "bez zastavenia", a ktory vypisuje priebezne nejaky vystup...nazvime ho
./foo.py
a ja chcem nejak grepnut vysledky... lenze ked dam:
./foo.py|grep foo
tak sa caka, kym program neskonci(a ja nekonecne vela casu nemam ;-]) a az potom grepuje...
ako mam donutit grep, aby hned grepoval?
Pre pridávanie komentárov sa musíte prihlásiť.
sys.stdout.flush()
za co ti aj dakujem, lebo o flush() som nevedel ;)
ale mna to taktiez zaujima kusa vseobecnejsie... nie viazane na python...
ved ked mam nejaky skript, tak standardny vystup mi vypisuje _hned_, cize teoreticky imho ma pipe ihned k dipozicii ten vystup...preco s nim nerobi?:(
1. pseudoterminal:
2. pseudoterminal: 3.pseudoterminal:
a na zaver skript count_up.py:
vysvetli mi to prosim niekto, preci mi na obe pseudoterminaly nedalo rovnaky vystup?:(
ale aj tak nerozumiem par veciam:
1) preco sa mi vystup neposle dalej, kym nepouzijem metodu flush() ?
ved ked nepouzivam pipe, tak mi to ide _hned_ na standardny vystup...
pipe by mala predsa dostavat vysledky okamzite...
resp. ako sa to da spravit napr. v C++ ? da sa to nejak spravit vseobecne, aby sa vystup odosielal hned, nezavisle an programe?(lebo to potrebujem)
2) da sa nejak spravit, aby som mal program foo.py a nejak posielal vystup VIACERYM - N programom na vstup? ale nejak elegantnejsie, vytvorit N rur?
2) ak chces aby program zasielal informacie viacerym programom, tak nepouzi zapis do jednej trubky. Ak chces, pouzi viacero rur alebo si urob tcpip server ktory bude tu jednu vec zasielat vsetkym pripojenym klientom alebo cez broadcast...