How to reset a socket back to blocking mode (after I set it to nonblocking mode)?

blocking, c, networking, nonblocking, sockets

Solution

Did you try clearing the O_NONBLOCK flag?

opts = opts & (~O_NONBLOCK)

Problem

I have read this regarding setting a socket to non-blocking mode. http://www.gnu.org/software/libc/manual/html_mono/libc.html#File-Status-Flags Here is what I did: ``` static void setnonblocking(int sock) { int opts; opts = fcntl(sock,F_GETFL); if (opts < 0) { perror("fcntl(F_GETFL)"); exit(EXIT_FAILURE); } opts = (opts | O_NONBLOCK); if (fcntl(sock,F_SETFL,opts) < 0) { perror("fcntl(F_SETFL)"); exit(EXIT_FAILURE); } return; } ``` How can I set the socket back to Blocking mode? I don't see a O_BLOCK flag? Thank you.

Original source

Related problems