How would I put my socket in non-blocking mode?



How would I put my socket in non-blocking mode?..

Answer / 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

More Unix Socket Programming Interview Questions

What exactly does SO_LINGER do?

1 Answers  


What is the difference between close() and shutdown()?

1 Answers  


Where can a get a library for programming sockets?

1 Answers  


What are the types of sockets?

0 Answers  


What are the pros/cons of select(), non-blocking I/O and SIGIO?

0 Answers  






How many sockets can a port have?

0 Answers  


What is the function of socket?

0 Answers  


What does af mean in sockets?

0 Answers  


What are raw sockets?

4 Answers   Axis Technologies,


What are socket exceptions? What is out-of-band data?

1 Answers  


system choose one for me on the connect() call? Should I bind() a port number in my client program, or let the?

0 Answers  


Why does it take so long to detect that the peer died?

0 Answers  


Categories