Answer Posted / chaitanya
Technically, fcntl(soc, F_SETFL, O_NONBLOCK) is incorrect since it clobbers all other file flags. Generally one gets away with it since the other flags (O_APPEND for example) don't really apply much to sockets. In a similarly rough vein, you would use fcntl(soc, F_SETFL, 0) to go back to blocking mode.
To do it right, use F_GETFL to get the current flags, set or clear the O_NONBLOCK flag, then use F_SETFL to set the flags.
And yes, the flag can be changed either way at will.
Is This Answer Correct ? | 1 Yes | 0 No |
Post New Answer View All Answers
Are unix sockets faster than tcp?
Why does the sockets buffer fill up sooner than expected?
How many sockets can a cpu have?
How is a socket created?
What is socket address?
What is the difference between a socket and a port?
How can I tell when a socket is closed on the other end?
Can multiple clients connect to same socket?
What is a socket set used for?
What are the types of sockets?
What is active unix domain sockets?
What is the purpose of socket?
What's the difference between a socket and a port?
Why do we need socket programming?
What is socket programming in java?