高级套接字函数 fcntl 设置socket 非阻塞
2012-05-28 17:14
183 查看
status = fcntl (hand, option, mode ) ;
上述fcntl函数调用中,各参数定义如下:
handle:已打开的文件句柄。
option:一般可以是下列两种值:
F_GETFL:表示读取文件状态值。
F_SETFL:表示设置文件状态值。
(注意:F_GETFL和F_SETFL都被定义在fcntl.h)
mode:如果optipn是F_GETFL,则这个参数值可以是任意值。如果是F_SETFL,则参数值可以是下列值:
O_WRONLY:将文件设置成只写状态。
O_RDWR: 将文件设置成读写状态。
O_RDONLY:将文件设置成只读状态。
status:函数会将调用结果赋给status,如运行失败,则status的值会被设成-1。
上述fcntl函数调用中,各参数定义如下:
handle:已打开的文件句柄。
option:一般可以是下列两种值:
F_GETFL:表示读取文件状态值。
F_SETFL:表示设置文件状态值。
(注意:F_GETFL和F_SETFL都被定义在fcntl.h)
mode:如果optipn是F_GETFL,则这个参数值可以是任意值。如果是F_SETFL,则参数值可以是下列值:
O_WRONLY:将文件设置成只写状态。
O_RDWR: 将文件设置成读写状态。
O_RDONLY:将文件设置成只读状态。
status:函数会将调用结果赋给status,如运行失败,则status的值会被设成-1。
//设置socket非阻塞 void setnonblocking(int sock) { int opts; opts = fcntl(sock, F_GETFL); if (opts < 0) { perror("fcntl(sock, GETFL)"); exit(1); } opts = opts|O_NONBLOCK; if (fcntl(sock, F_SETFL, opts) < 0) { perror("fcntl(sock, SETFL, opts)"); exit(1); } }
相关文章推荐
- Linux下socket设置为非阻塞方式和fcntl系统调用
- Linux下socket设置为非阻塞方式和fcntl系统调用
- Linux下socket设置为非阻塞方式和fcntl系统调用
- Linux下socket设置为非阻塞方式和fcntl系统调用
- C++ 之Socket 编程 send rev 阻塞设置 阻塞超时时间
- socket 设置阻塞和超时 .
- socket中各个阻塞,非阻塞,初始化和超时时间设置
- boost库之socket 非阻塞/缓冲区大小等属性设置
- socket 设置非阻塞
- 用fcntl()设置阻塞函数的阻塞性质
- VC中使用API编写的socket程序中如何设置阻塞和非阻塞
- Linux fcntl函数设置阻塞与非阻塞
- unix/linux socket设置非阻塞io
- 阻塞非阻塞socket设置
- fcntl即F_SETFL,F_GETFL的使用,设置文件的flags,阻塞设置成非阻塞,非阻塞设置成阻塞(这连个在server开发中可以封装为基本函数)
- boost库之socket 非阻塞/缓冲区大小等属性设置
- 将socket设置为非阻塞(non-blocking)(
- 高级Socket编程——阻塞与非阻塞模式Socket编程
- 如何设置linux socket为非阻塞
- socket设置为非阻塞方式&阻塞方式