[Python-Dev] SIGPIPE => SIG_IGN? (original) (raw)

Gustavo Niemeyer gustavo at niemeyer.net
Sat Sep 10 01:47:09 CEST 2005


Greetings,

I was wondering, why are we setting SIGPIPE to SIG_IGN in initsigs():

static void initsigs(void) { #ifdef SIGPIPE PyOS_setsig(SIGPIPE, SIG_IGN); #endif [...] }

One of the side effects is:

os.system("yes | read any") yes: standard output: Broken pipe yes: write error 0 os.system("yes | head -1") y yes: standard output: Broken pipe yes: write error 0

That stops when setting to SIG_DFL:

signal.signal(signal.SIGPIPE, signal.SIG_DFL) 1 os.system("yes | head -1") y 0 os.system("yes | read any") 0

Out of curiosity, many of the google results for "yes: standard output: Broken pipe" are from Python programs. :-)

Regards,

-- Gustavo Niemeyer http://niemeyer.net



More information about the Python-Dev mailing list