linux下select被中断后如何获取中断前流逝的时间

zxm745996552 2015-08-24 02:54:16
因为项目中要通过读取串口数据,在等待时,使用了select,因为程序经常需要接收到信号中断,导致select失败,所以select失败后,检查为中断导致,则重新select,但是因为不清楚select前过去的时间,如终端信号过于密集,可能导致不断的select,想要获取到中断前select阻塞的时间,不知道有没有什么比较好的方法。
...全文
306 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
EluEvin 2015-08-25
  • 打赏
  • 举报
回复
可以自己写一个计时的函数,调用linux提供的gettimeofday,下面是个例子,你可以将两次获得的秒和微妙相减就可以得到中间间隔的时间。 可以参考:http://man.chinaunix.net/develop/c&c++/linux_c/default.htm 希望能帮到你! #include<sys/time.h> #include<unistd.h> main(){ struct timeval tv1,tv2; struct timezone tz; gettimeofday (&tv1 , &tz); //要计算时间的代码部分 gettimeofday (&tv1 , &tz); //间隔的秒数 sec = tv2.tv_sec - tv1.tv_sec; return 0; }
翔云123456 2015-08-24
  • 打赏
  • 举报
回复
select 有定时的参数,可以用一下,返回0就是超时了

23,216

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧