if((val = fcntl(fd,F_GETFL,0))<0)
.......
val |= O_NONBLOCK;
if(fcntl(fd,F_SETFL,val)<0)
.......
设置非阻塞。
第三行为什么能这样设,val不是反回文件描述符fd么?
if((val = fcntl(fd,F_GETFL,0))<0)
.......
val |= O_NONBLOCK;
if(fcntl(fd,F_SETFL,val)<0)
.......
设置非阻塞。
第三行为什么能这样设,val不是反回文件描述符fd么?
fcntl函数原型为:int fcntl(int fd, int cmd, long arg);
其中cmd支持的命令有多种,其中设置文件描述词的状态,可选的类型有O_APPEND、O_NONBLOCK和O_ASYNC,其中O_NONBLOCK表示设置非阻塞。