[Python-Dev] SIGPIPE => SIG_IGN?
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