SIGPIPE (z anglických slov a , 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.

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

Externí odkazy Článek o předefinování reakce na SIGPIPE (anglicky)

Kategorie:Unixové signály