Re: Finding out socket/pipe connectivity status

From: Alan Cox
Date: Sun Aug 12 2007 - 11:52:50 EST


> when a pipe/socket is broken, the process trying to read/write to it
> gets SIGPIPE. Is there a way to detect whether the next read/write will
> trigger a SIGPIPE? select() does not seem helpful here.

select considers the broken pipe an error that needs reporting so it goes
ready. Processes that are network aware normally set SIGPIPE to SIG_IGN.
The default behaviour comes from a desire that non aware programs
shouldn't get stuck spinning on a network error but go away.

If you ignore the signal you'll get a event from select, and then an
error code.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/