IO复用 select

int main(void){

fd_set rfds;

struct timeval tv;

int retval;

FD_ZERO(&rfds);//清空文件描述符

FD_SET(0,&rfds);//设置文件描述符

tv.tv_sec = 3;

tv.tv_usec = 0;

while(1){

retval = select(1,&rfds,NULL,NULL,&tv); //第一个参数是最大fd+1

if(retval == -1)

perror("select err\n");

else if(retval){

printf("data is  ready\n");

if(FD_ISSET(0,&rfds)){//文件描述符是否发生变化

printf("0fd is ready\n");

exit(0);

}

}else

printf("No data\n");

}

return 0;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 串口操作 串口操作需要的头文件 #include /*标准输入输出定义*/ #include /*标准函数库定...
    旅行家John阅读 1,408评论 0 3
  • 大纲 一.Socket简介 二.BSD Socket编程准备 1.地址 2.端口 3.网络字节序 4.半相关与全相...
    y角阅读 2,593评论 2 11
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,805评论 18 399
  • 一、概述 I/O复用使得程序能同时监听多个文件描述符,这对提高程序的性能至关重要。 I/O复用虽然能同时监听多个文...
    saviochen阅读 1,117评论 0 4
  • 在线发布工具啦啦啦 最好用的编辑器 是么 编辑器 很久没写长文了百度一下,你就知道www.123.comwww.q...
    喵喵cathy阅读 299评论 0 0