SIGPIPE的设计意图
SIGPIPE 是为以下这种情况设计的:
grep “pattern” < reallyhugefile | head
grep可能会输出成千上万行文本,但 head 只会读取前10行然后就退出。一旦head退出,grep就会收到SIGPIPE,然后被杀死。这样grep就不至于一直没完没了的输出没用的内容。
如果你不想让你的程序因此被杀死,你可以自行处理SIGPIPE。这样的话你就会遇到write error,errno等于EPIPE。
原文链接: SIGPIPE and EPIPE.