SIGPIPE 是类 Unix 系统中的一个信号,表示“向没有读端的管道/套接字写入数据”。常见场景是:对端进程已关闭连接,你的程序仍继续写数据,系统就会发送 SIGPIPE;若未处理,程序通常会被终止。(在实践中也常见 write() 返回 EPIPE 错误与之对应。)
/ˈsɪɡpaɪp/
When the client disconnected, the server got SIGPIPE.
当客户端断开连接时,服务器收到了 SIGPIPE。
If you don’t handle SIGPIPE, writing to a closed socket may terminate your program unexpectedly.
如果你不处理 SIGPIPE,向已关闭的套接字写入数据可能会导致程序意外终止。
SIGPIPE 由 **sig-**(signal,信号的缩写)+ pipe(管道)构成,字面意思就是“管道相关的信号”。它源于早期 Unix 的进程间通信(IPC)机制:当管道读端关闭后,写端继续写入会触发该信号,提示“下游已断开”。