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
  • 23119

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

#if defined(SOCK_NONBLOCK)         return ::socket(AF_INET, SOCK_STREAM | SOCK_NONBLOCK, IPPROTO_TC...
  • zjnig711
  • zjnig711
  • 2011年01月18日 05:09
  • 2175

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

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

杭电OJ——1086 You can Solve a Geometry Problem too

You can Solve a Geometry Problem too Problem Description Many geometry(几何)problems were de...
  • lishuhuakai
  • lishuhuakai
  • 2012年12月06日 06:13
  • 2310

服务器编程心得(四)—— 如何将socket设置为非阻塞模式

1. windows平台上无论利用socket()函数还是WSASocket()函数创建的socket都是阻塞模式的: SOCKET WSAAPI socket( _In_ int af, ...
  • analogous_love
  • analogous_love
  • 2016年11月04日 13:11
  • 11110

socket创建过程

SYSCALL_DEFINE3(socket, int, family, int, type, int, protocol) { int retval; struct socket *sock;...
  • sunlei0625
  • sunlei0625
  • 2016年10月09日 22:45
  • 96

linux—FIFO的使用与非阻塞标志(O_NONBLOCK)的影响

FIFO文 #include #include int mkfifo( const char*pathname, mode_t mode); 参数: pathname:FIFO的路径名+...
  • erlian_beijing
  • erlian_beijing
  • 2015年06月30日 17:32
  • 1837

ocp-131

QUESTION NO: 131 When starting up your ASM instance, you receive the following error: ASM SQL> sta...
  • xuejiayue1105
  • xuejiayue1105
  • 2015年10月05日 11:04
  • 801

hdoj-1086-You can Solve a Geometry Problem too 判断线段是否相交

You can Solve a Geometry Problem too Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/327...
  • qq_18062811
  • qq_18062811
  • 2015年07月20日 19:02
  • 396

Week4 Assignment - Without Full Score - Princeton-Algorithms-PartI

题注 第一次跟Princeton的《Algorithm》课没有跟下来的一个核心原因就是这道题无论如何拿不到full score,第一次做的时候分数只有不到85分,因为最后的测试总是有一些test不能...
  • u013590498
  • u013590498
  • 2014年02月24日 13:56
  • 7125
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:code to solve "SOCK_NONBLOCK" and "O_NONBLOCK" undefined problem in linux
举报原因:
原因补充:

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