`
tcspecial
  • 浏览: 906661 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

select用法

阅读更多

select用法 

 

select为linux常用的非堵塞套接字API,原型为:

int select(int nfds, fd_set *readfds, fd_set *writefds,

              fd_set *exceptfds, struct timeval *timeout);

 

select用于检测文件描述符的变化,参数五timeout:

1. NULL传入,此时select置于堵塞状态,直到fd发生变化函数才返回。

2. 时间值设为0秒0纳秒,不管fd是否变化,函数立即返回。

3. timeout值大于0,就是等待超时时间。如超时时间内有事件到来就返回,否则在超时后再返回。

 

struct timeval tm;
tm.tv_sec = 1;
tm.tv_usec = 0;

while(1)
{
	int num = select(maxfd,rfd,NULL,NULL,&tm);
	... 
}

   执行上述,发现CPU占用率100%。也就是说tm未起到作用。调试过程中,第一次执行select()时超时1s,但是第二次执行时立即返回,发现此时 tm.tv_sec 变为0了,导致select立即返回后。为降低CPU占用,因此每次调用前更新tm变量。

 

while(1)
{
	// 每次设置时间
	tm.tv_sec = 1;
	int num = select(maxfd,rfd,NULL,NULL,&tm);
	... 
}

 

 

 

分享到:
评论

相关推荐

    select into和insert into select使用方法

    ### 使用Select Into与Insert Into Select进行表复制的方法 在数据库管理与操作中,`SELECT INTO`与`INSERT INTO SELECT FROM`是两种常见的用于复制或创建新表的方式。这两种语句虽然相似,但在实际使用场景中有着...

    SQL语句select用法详解

    ### SQL语句SELECT用法详解 #### 一、概述 SQL(Structured Query Language)是一种用于管理关系数据库的标准语言。在SQL中,`SELECT`语句是最常用的操作之一,主要用于从数据库表中检索数据。通过使用不同的子句...

    Angular2中select用法之设置默认值与事件详解

    本文主要给大家介绍了Angular2中select用法之设置默认值与事件的相关内容,分享出来供大家参考学习,下面来看看详细的介绍: 一、设置默认值: 现在有三个学生小明,小红,小黑,对双向绑定的student设置你想要的...

    js之Select用法

    - 删除选项:`selectElement.removeChild(optionElement)`,通过`removeChild`方法删除指定的`option`元素。 3. **获取用户的选择** - `selectedIndex`属性:返回或设置被选中的选项的索引。例如,`selectElement...

    VFP SELECT 用法大补

    本文将深入探讨 VFP 中 SQL SELECT 的用法,包括其各个子句的功能和使用技巧。 ### 简介 SQL SELECT 是用于从数据库中提取数据的关键命令,它允许用户根据特定的条件和需求定制数据输出。VFP 中的 SQL SELECT 支持...

    Update和Select结合使用

    为了提高效率和减少资源消耗,将`UPDATE`语句与`SELECT`语句相结合是一种非常实用的方法。这种方式可以实现更高效的数据处理,特别是在需要批量更新记录时。下面我们将深入探讨如何将`UPDATE`与`SELECT`结合使用,并...

    socket select()用法

    在上面的例子中,我们展示了如何使用 `select()` 来检测Socket是否可读。当 `FD_ISSET(sockfd, &fdR)` 返回真时,表示Socket可读,此时我们可以进行读取操作或者接受新的连接请求。这种方法特别适用于服务器端,可以...

    linux下select和poll的用法

    Linux 下 select 和 poll 的用法 在 Linux 中,select 和 poll 是两个常用的系统调用,它们用于查询设备是否可读写或是否处于某种状态。下面将详细介绍 select 和 poll 的用法。 select 函数 select 函数的作用是...

    linux shell 编程中select 命令的用法

    以下是对`select`命令在Linux Shell编程中用法的详细解析: ### `select`命令的基本语法 `select`命令的基本结构与`for`循环类似,但更侧重于创建菜单和接收用户输入。其基本语法如下: ```bash select WORD in ...

    select语句使用大全

    简要介绍了select语句的用途已经详细介绍了select的使用方法,为初学者提供借鉴

    socket编程中select的使用

    为了实现这一目标,通常会采用同步I/O模型中的多路复用技术,其中`select`函数是较为常见的一种方法。对于刚接触Socket编程的学习者来说,往往更倾向于使用如`connect`、`accept`、`recv`或`recvfrom`等阻塞调用来...

    Golang中switch语句和select语句的用法教程

    本文主要给大家介绍了关于Golang中switch和select用法的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 一、switch语句 switch语句提供了一个多分支条件执行的方法。每一个case可以携带一个表达式...

    SELECT语句使用大全

    SELECT 语句使用大全 SELECT 语句是 SQL 中最基本也是最重要的一种语句,它用于从数据库中检索数据。SELECT 语句的完整语法比较复杂,但是大多数 SELECT 语句都描述结果集的四个主要属性:结果集中的列的数量和属性...

    jquery.editable-select插件使用案例

    此为jquery.editable-select插件的使用案例,这是一款非常好用的插件,好用之处:既可下拉框选择也可手动输入,而且手动输入还能对下拉框选项进行过滤,而且还可实现一些相关事件,具体请查看官方文档。

    jsp中htmlselect标签的用法

    以下是对`html:select`标签的详细解释和使用方法: ### 基本结构 `html:select`标签的基本结构如下: ```jsp <html:select property="beanProperty"> </html:select> ``` - `property="beanProperty"`: 指定...

    Jsoup select选择器的简单使用案例

    Jsoup select选择器基本的使用方法,一般套路都是打开浏览器开发者工具,找到需要爬取的网页信息所在的网页标签,标记。然后用选择器把子标签所在的“路径”用语句拼接起来。。select(".slst.mtw>ul>li>h3>a");例如要...

    基于Bootstrap下拉框插件bootstrap-select使用方法详解

    ### Bootstrap-select使用方法详解 首先,要使用bootstrap-select,需要在项目中引入Bootstrap以及bootstrap-select的CSS和JS文件。页面的基本结构如下: ```html ${baseURL}/Bootstrap/bootstrap/css/bootstrap....

    SELECT 的另类用法

    select 的另类用法select 的另类用法select 的另类用法select 的另类用法select 的另类用法

    select命令用法详解

    接下来,我们将通过两个具体的示例来深入了解`select`命令的使用方法。 ##### 实例1:执行完命令不退出脚本 在这个例子中,我们创建了一个简单的菜单,用户可以选择运行不同的系统命令: ```bash #!/bin/bash PS3...

Global site tag (gtag.js) - Google Analytics