我是靠谱客的博主 可耐康乃馨,最近开发中收集的这篇文章主要介绍select/poll/epoll中的timeval,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

头文件: #include <sys/time.h>

函数原型:int select(int maxfdp, fd_set* readfds, fd_set* writefds, fd_set* errorfds, struct timeval* timeout);

timeval的结构:

struct timeval{
        long tv_sec; //秒
        long tv_usec; //微秒
}

函数中的参数timeout,参数至关重要,它可以使select处于三种状态:
1、若将NULL以形参传入,即不传入时间结构,就是将select置于阻塞状态,一定等到监视文件描述符集合中某个文件描述符发生变化为止;
2、若将时间值设为0秒0毫秒,就变成一个纯粹的非阻塞函数,不管文件描述符是否有变化,都立刻返回继续执行,文件无变化返回0,有变化返回一个正值;
3、timeout的值大于0,这就是等待的超时时间,即select在timeout时间内阻塞,超时时间之内有事件到来就返回了,否则在超时后不管怎样一定返回,返回值同上述。 


返回值: 
负值:select错误
正值:某些文件可读写或出错
0:等待超时,没有可读写或错误的文件 

最后

以上就是可耐康乃馨为你收集整理的select/poll/epoll中的timeval的全部内容,希望文章能够帮你解决select/poll/epoll中的timeval所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部