栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在读取函数调用中实现超时?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在读取函数调用中实现超时?

select()有5个参数,首先是最高的文件描述符+ 1,然后是fd_set用于读取,一个用于写入,一个用于异常。最后一个参数是struct
timeval,用于超时。错误时返回-1,超时时返回0或设置的集合中文件描述符的数量。

#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <sys/select.h>int main(void){  fd_set set;  struct timeval timeout;  int rv;  char buff[100];  int len = 100;  int filedesc = open( "dev/ttyS0", O_RDWR );  FD_ZERO(&set);   FD_SET(filedesc, &set);   timeout.tv_sec = 0;  timeout.tv_usec = 10000;  rv = select(filedesc + 1, &set, NULL, NULL, &timeout);  if(rv == -1)    perror("select");   else if(rv == 0)    printf("timeout");   else    read( filedesc, buff, len ); }


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/394184.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号