Re: select for UNIX sockets?

From: MarKol (
Date: Mon Jun 09 2003 - 11:46:40 EST


----- Original Message -----
From: "David Schwartz" <>
> Suppose, for example, a machine has two network interfaces. One is
> busy, queue full, and one is totally idle, queue empty. What do you
> 'select' for write on an unconnected UDP socket should do?

There is an internal buffer for this UDP socket. Select() should depend
on it's state.
I heard that SO_SNDLOWAT i SO_RCVLOWAT might be useful in this approach,
but it is not implemented in Linux.

Moreover my example uses AF_UNIX socket and AFAIK this should be
reliable communication.
I don't know why are you taking about network interfaces in this

This quotation is taken from man select:
       Three independent sets of descriptors are watched. Those
       listed in readfds will be watched to see if characters
       become available for reading (more precisely, to see if a
       read will not block - in particular, a file descriptor is
       also ready on end-of-file), those in writefds will be
       watched to see if a write will not block, and those in
       exceptfds will be watched for exceptions."

and this from man socket:
" Socket creates an endpoint for communication and returns a
       descriptor. "

I'm aware of the fact that my english is rather poor, but I see that
socket returns a descriptor, and select is watching descriptors and
returns descriptors ready for writing if a write operation will not

I would agree with you if my program wouldn't work on Solaris or QNX.
But it works on both and it looks consistent with man!


Marek Kolacz

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to More majordomo info at Please read the FAQ at

This archive was generated by hypermail 2b29 : Sun Jun 15 2003 - 22:00:21 EST