Get the App
SLTechnology News&Howtos  ›  Development  › 

Why SIGPIPE is produced under linux

Shulou Source: shulou.com Published: 2022-06-03 11:01:23 10月06日 Update

This article mainly shows you "why there is SIGPIPE under linux", which is easy to understand and clear. I hope it can help you solve your doubts. Let me lead you to study and learn this article "Why there is SIGPIPE under linux".

Brokenpipe:writetopipewithnoreaders. The pipe is broken. This signal is usually generated in inter-process communication, such as two processes using FIFO (pipeline) communication. If the read pipeline is not opened or terminated unexpectedly, the write process will receive the SIGPIPE signal. In addition, the two processes that communicate with Socket, the write process, the read process has been terminated while writing the Socket.

SIGPIPE (Brokenpipe) meaning

For other signal meanings, see:

Linux signal categories / lists-Overview

Solution method

Ignore SIGPIPE signal

Structsigactionsa

Sa.sa_handler=SIG_IGN

Sigaction (SIGPIPE,&sa,0)

Adjust the flags parameter of the socket sending function

Set flags to MSG_NOSIGNAL to achieve the effect that the whole process (not just the calling thread) ignores the SIGPIPE signal.

Ssize_tsend (intsockfd,constvoid*buf,size_tlen,intflags)

Ssize_tsendto (intsockfd,constvoid*buf,size_tlen,intflags,\

Conststructsockaddr*dest_addr,socklen_taddrlen)

Ssize_tsendmsg (intsockfd,conststructmsghdr*msg,intflags)

Sigpipe parameter

Parameter flags, which indicates how send transmits data:

MSG_CONFIRM provides link layer feedback to keep address mapping valid

MSG_DONTROUTE does not route packets out of the local network

MSG_DONTWAIT allows non-blocking behavior

MSG_EOF marks the end of the record

MSG_MORE allows delays and writes more data

The above is all the contents of the article "Why SIGPIPE is produced under linux". Thank you for reading! I believe we all have a certain understanding, hope to share the content to help you, if you want to learn more knowledge, welcome to follow the industry information channel!

Tags: Process signal pipeline content parameter data article communication two meaning more learning help effectiveness accident function address indication effect way Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno Redmi MySQL Microsoft vpn NVidia