我知道SIGPIPE
和SIGIGN
的个人用途。
什么是
signal(SIGPIPE, SIG_IGN);
到底做了什么?
答案 0 :(得分:8)
signal(SIGPIPE, SIG_IGN);
只是忽略信号SIGPIPE
。将SIG_IGN
作为处理程序传递会忽略给定的信号(除了无法捕获或忽略的信号SIGKILL
和SIGSTOP
)。
顺便说一下,通常建议使用sigaction(2)
而不是signal(2)
,因为sigaction
可以提供更好的控制,也不需要在某些系统上“重置”处理程序System V信号行为)。