#include<unistd.h>
#include<fcntl.h>
int fcntl(int fd, int cmd);
int fcntl(int fd, int cmd, long arg);
int fcntl(int fd, int cmd ,struct flock* lock);
int fcntl(int fd, int cmd, ... /* arg */ );
经常用这个fcntl函数改变阻塞和非阻塞性质
常用cmd
F_GETFL(常用)
F_SETFL(常用)
nt flag;
flag = fcntl(sockfd, F_GETFL, 0);
flag |= O_NONBLOCK;
fcntl(sockfd, F_SETFL, flag);
若想设置回阻塞,只需要把Flags改为iFlags&~O_NONBLOCK即可。