Re: Bash - blokované ukončení kolony
Pavel Kankovsky
peak na argo.troja.mff.cuni.cz
Úterý Březen 26 13:13:44 CET 2013
On Tue, 26 Mar 2013, Miroslav Vancl wrote:
> má tu takovou záhadu:
> cat | exit
> Očekával bych, že okamžitě skončí, bohužel čeká na vstup.
To je úplně jednoduché: uzavření roury na výstupu není samo o sobě důvod
k ukončení programu. Důvod k ukončení je (přesněji řečeno: může být) až
to, když se někdo pokusí do té uzavřené roury zapsat, protože pak schytá
SIGPIPE.
Byl by možná zajímavý námět na vylepšení tail -f, aby dokázal průběžně
testovat, zda se výstup neuzavřel. Asi by se to muselo udělat nějakou
kličkou, kdy by se výstup testoval pomocí poll() a hlídalo se, kdy se tam
objeví POLLERR (a při té příležitosti by se mohlo přidat neblokující
čtení na vstup).
--
Pavel Kankovsky aka Peak / Jeremiah 9:21 \
"For death is come up into our MS Windows(tm)..." \ 21st century edition /
Další informace o konferenci Linux