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