IO模型
阻塞IO
一般系统默认的IO为阻塞IO,等待IO时进程或线程睡眠。
非阻塞IO
就在执行到IO操作时,没有从缓冲区读到数据,就会从IO操作下面继续执行
注意:对于这种操作一般采用轮询(循环)的方式
fcntl 处理描述符相关联的操作方式
int fcntl(int fd, int cmd, ... /* arg */ );
功能: 文件描述符的控制操作函数,具体操作有命令来决定
参数:
fd 要操作哪一个已经存在的描述符
cmd 文件描述符的控制操作命令
F_GETFL 获取文件描述符的状态标志,可以不用第三个参数
F_SETFL 设置文件描述符的状态标志,必须设置第三个参数
arg 命令对应的具体操作是什么,具体找到手册,查看命令对应的选项
返回值:
F_DUPFD The new descriptor.
F_GETFD Value of file descriptor flags.
F_GETFL Value