Andi Kleen wrote:
On Thu, Jul 08, 2004 at 12:21:35PM -0400, Chris Friesen wrote:
> Michael T Kerrisk wrote:
>
> >MSG_DONTWAIT should also work with recvmsg().
>
> Hmm... Just tried it with a DGRAM socket, and it seems to work. Any
ideas
> why its not in the man pages?
Nobody ever added it? Just send a patch to aeb@xxxxxx
Sending patch as suggested. Fundamentally, the delta is as follows, I've
included an attachment with what I hope are the proper formatting codes (copied
from send(2)).
--- recv.man 2004-07-08 15:43:17.000000000 -0400
+++ recv2.man 2004-07-08 15:47:29.000000000 -0400
@@ -67,6 +67,11 @@
disconnect occurs, or the next data to be received is of a dif-
ferent type than that returned.
+ MSG_DONTWAIT
+ Enables non-blocking operation; if the operation would block,
+ EAGAIN is returned (this can also be enabled using the O_NON-
+ BLOCK with the F_SETFL fcntl(2)).
+
MSG_NOSIGNAL
This flag turns off raising of SIGPIPE on stream sockets when
the other end disappears.
Note also that there is a mention of MSG_DONTWAIT in the msg_flags field in the
msghdr. It gives the impression that one can *set* that field to cause the
non-blocking behaviour. My understanding is that the msg_flags field is a
return value only. Perhaps that portion should be reworded as well.
Chris
man2recv.diff
Description: Binary data
|