code to solve "SOCK_NONBLOCK" and "O_NONBLOCK" undefined problem in linux

原创 2011年01月18日 05:09:00

#if defined(SOCK_NONBLOCK)
        return ::socket(AF_INET, SOCK_STREAM | SOCK_NONBLOCK, IPPROTO_TCP);

        /* If they have O_NONBLOCK, use the Posix way to do it */
#elif defined(O_NONBLOCK)
        /* Fixme: O_NONBLOCK is defined but broken on SunOS 4.1.x and AIX 3.2.5. */
        int sock = socket(PF_INET, SOCK_STREAM, 0);
        int flags;

        if (-1 == (flags = fcntl(sock, F_GETFL, 0)))
                flags = 0;

        fcntl(sock, F_SETFL, flags | O_NONBLOCK);

        return sock;

#else
        int sock = socket(PF_INET, SOCK_STREAM, 0);
        /* Otherwise, use the old way of doing it */
        int flags = 1;
        ioctl(sock, FIOBIO, &flags);

        return sock;

#endif

相关文章推荐

[linux] 将socket设置为非阻塞(non-blocking)

有一个非常有迷惑性的做法是:u_long has = 1;ioctl(m_sock, FIONBIO , &has);这个函数会非常无耻的返回你success,但是它实际上很可能什么也没做。正确的做法...
  • wwwsq
  • wwwsq
  • 2006年07月24日 19:06
  • 22100

Linux 设备驱动--- 阻塞型字符设备驱动 --- O_NONBLOCK --- 非阻塞标志

阻塞:           在设计简单字符驱动程序时,要注意一个重要问题.           当一个设备无法立刻满足用户的读写请求时应当如何处理?           例如:调用 read 时...

Linux 驱动程序笔记3--- 阻塞型字符设备驱动 --- O_NONBLOCK --- 非阻塞标志

阻塞:           在设计简单字符驱动程序时,要注意一个重要问题.           当一个设备无法立刻满足用户的读写请求时应当如何处理?           例如:调用 ...

IO模式设置网络编程常见问题总结—IO模式设置,阻塞与非阻塞的比较,recv参数对性能的影响—O_NONBLOCK(open使用)、IPC_NOWAIT(msgrcv)、MSG_DONTWAIT(re

http://blog.163.com/xychenbaihu@yeah/blog/static/132229655201121793744671/ 非阻塞IO 和阻塞IO:       ...

fcntl中使用O_NONBLOCK设置pipe()产生的读端非阻塞草稿

#include #include #include #include #include #include #include //#include #include ...

block and nonblock

同步阻塞IO 应用程序(application)为了执行这个read操作,会调用相应的一个system call,将系统控制权交给kernel,然后就进行等待(这其实就是被阻塞了)。kernel开始...

基于信号驱动式IO的监听套接字(O_ASYNC,O_NONBLOCK)

背景 Source: http://blog.csdn.net/ordeder/article/details/22733077 (Unix网络编程卷1说明如下) 设置套接字信号驱动式io(SI...
  • ordeder
  • ordeder
  • 2014年04月01日 14:55
  • 2441

I was trying to solve problem '1234 - Harmonic Number', I wrote the following code

Time Limit:3000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu Submit Status D...
  • z8110
  • z8110
  • 2015年11月07日 16:26
  • 435

Solve a problem caused by Xhost and Installation of Expect tool on Linux

Solve the Problem caused by Xhost permission Up to today,  our team have struggled for about mo...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:code to solve "SOCK_NONBLOCK" and "O_NONBLOCK" undefined problem in linux
举报原因:
原因补充:

(最多只允许输入30个字)