SIGPIPE
From Wikipedia, the free encyclopedia
Remove ads
SIGPIPE (z anglických slov signal a pipe, tedy signál a roura) je signál v systémech kompatibilních se standardem POSIX. Číslo SIGPIPE je 13. Proces tento signál obdrží, pokud se pokusí psát do roury, která není na druhém konci připojena. Jeho číselná hodnota je definována v hlavičkovém souboru signal.h a na různých platformách se může lišit.
Přednastavenou reakcí pro proces je ukončení se, ale pomocí sigaction je možné reakci předefinovat.
Remove ads
Příklad
Nasimulovat SIGPIPE je možné například pomocí
$ yes | head -n 1
- yes v nekonečné smyčce vypisuje „y“, jeden na řádku
- head -n 1 vypíše první řádek vstupu a pak se ukončí.
příkaz yes se snaží zapisovat do už uzavřené roury a obdrží signál SIGPIPE. Což se neprojeví viditelně. Ale např. v bash se projeví na nenulovém stavu v PIPESTATUS:
$ echo $PIPESTATUS
141
Reference
V tomto článku byl použit překlad textu z článku SIGPIPE na anglické Wikipedii.
Externí odkazy
- Článek o předefinování reakce na SIGPIPE (anglicky)
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads