`

select函数的用法一

阅读更多

这个例子来自网上,调试修改后,粘贴如下:

#include <sys/time.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <assert.h>
#include <unistd.h>
#include <fcntl.h>

int main(int argc, char **argv)
{
	int keyboard;
	int ret;
	char ch;
	fd_set readfd;
	struct timeval timeout;

	keyboard = open("/dev/tty", O_RDONLY|O_NONBLOCK);
	assert(keyboard > 0);

	while (1)
	{
		timeout.tv_sec  = 3;
		timeout.tv_usec = 0;
		FD_ZERO(&readfd);
		FD_SET(keyboard, &readfd); // 置位
		// 执行select函数时,首先记录置位的描述符,然后将所有位清零,从select函数返回前,有动作的描述符被再次置位
		ret = select(keyboard+1, &readfd, NULL, NULL, &timeout);
		if (FD_ISSET(keyboard, &readfd)) { // 如果置位,则表示有可读的信息
			read(keyboard, &ch, 1);
			if ('\n' == ch)
				continue;
			printf("key:%c\n", ch);
			if ('q' == ch)
				break;
		}
		else {
			printf("No input!\n");
		}
	}
	close(keyboard);
}

 

分享到:
评论

相关推荐

    C--网络编程SELECT函数用法详解

    ### C++网络编程中SELECT函数详解 #### 一、引言 在C++网络编程领域,`select`函数因其灵活性和高效性而被广泛应用于多种场景。尤其在处理多个网络连接的同时读写操作时,`select`能显著提高程序的性能。本文将深入...

    linux c语言 select函数的用法

    #### 一、select函数简介 `select`函数是Linux系统下用于实现I/O多路复用的核心函数之一,在C语言编程中被广泛使用。它能够有效地监控多个文件描述符(File Descriptor, FD),检测它们的状态变化(如可读、可写或...

    C网络编程SELECT函数用法详解[整理].pdf

    C网络编程SELECT函数用法详解[整理].pdf

    select函数详细分析

    ### select函数详细分析 #### 一、概述 `select`函数是操作系统提供的一个重要系统调用,主要用于让程序能够同时监控多个文件描述符(file descriptor)的状态变化。这使得程序可以在多个网络连接或输入输出流之间...

    Excel常用函数用法详解

    Excel常用函数用法详解

    Linux系统Select函数.pdf

    ### Linux系统中的Select函数详解 #### 一、引言 在Linux系统中,`select()`函数作为处理I/O多路复用的一种经典方法,在网络编程领域占有重要地位。特别是对于那些需要同时处理多个连接的应用场景来说,使用`select...

    select函数来实现多路复用输入/输出模型

    `select`函数是实现这一模型的一种常见方法,特别是在古老的Unix系统和POSIX兼容系统中广泛使用。 `select`函数的核心在于它可以监听一组文件描述符集,当这些集合中的任何一成员准备进行读写操作时,`select`会...

    Pytorch中index_select() 函数的实现理解

    文中给出了两个示例代码,让我们更直观地理解index_select()函数的使用方法。第一个示例中定义了一个3x4的张量a,然后使用index_select()函数挑选第0维(行)的第0行和第2行。第二个示例中定义了一个2x3x4的三维张量...

    linux下select和poll的用法

    poll 函数与 select 函数类似,但它使用 pollfd 结构来描述文件描述符的状态。poll 函数的基本接口为: ```c int poll(struct pollfd *fds, nfds_t nfds, int timeout); ``` 其中: * `fds` 是一个 pollfd 结构的...

    lwip数据接收发送过程函数

    本文将详细介绍LWIP中数据接收与发送的核心流程及关键函数的使用方法。 #### 二、整体流程概述 LWIP数据收发的整体流程主要包括以下几个步骤: 1. **初始化LWIP**: 在程序开始时,首先需要初始化LWIP系统。 2. **...

    Lua select函数用法实例

    在Lua编程语言中,`select`函数是一个非常实用的工具,尤其在处理变长参数列表时。`select`函数允许开发者根据指定的选择器(selector)来获取或操作参数列表中的元素。下面我们将深入探讨`select`函数的用法、工作...

    select详解

    在IT领域,网络编程是不可或缺的一部分,特别是在处理并发连接时,`select`函数是一个非常重要的工具。本篇文章将深入解析`select`的工作原理及其在C语言中的应用,以`udp_thread.c`和`udp_select.c`两个示例代码为...

    处理html 控件select的js函数

    添加新选项可以使用`add`方法,需要传入一个`HTMLOptionElement`对象。例如,`selectObj.add(new Option('Option Text', 'Value'))`。删除选项则可以使用`remove`方法,传入要移除的选项索引,如`selectObj.remove...

    db2函数大全,使用方法

    DB2 函数大全使用方法 DB2 函数大全是 DB2 数据库管理系统中提供的一组函数,用于进行数据处理和分析。本文将对 DB2 函数大全进行总结,包括 AVG、CORR、COUNT、COVAR、MAX、MIN、STDDEV、SUM、VAR 等函数,并提供...

    关于decode函数的使用

    #### 使用方法 `decode()`函数的基本语法如下: ```sql SELECT DECODE(columnname, 值1, 翻译值1, 值2, 翻译值2, ..., 值n, 翻译值n, 缺省值) FROM tablename WHERE ... ``` 其中: - `columnname`:指的是表中的某...

    SQL_SERVER日期函数详细用法

    SQL Server 日期函数详细用法 SQL Server 提供了多种日期函数,用于处理日期和时间数据。下面将详细介绍这些函数的用法。 1. GETDATE() 函数 GETDATE() 函数用于获取当前日期和时间。该函数返回当前服务器的日期...

    DB2函数大全(自己整理的)

    #### 一、统计与数学函数 **1. AVG()** - **函数解释:** 返回一组数值的平均值。 - **示例:** `SELECT AVG(SALARY) FROM BSEMPMS;` - **知识点:** AVG 函数用于计算表中特定列的平均值。它通常用于分析数据集中...

    select函数总结

    《select函数总结——深入解析与应用实践》 在操作系统中,多路复用技术是实现高并发、高效网络编程的关键。其中,`select`函数作为经典的I/O多路复用模型,广泛应用于各种网络服务程序中。本文将对`select`函数...

    SQL时间函数使用以及函数之间使用方法

    1. **GETDATE()**:这是获取当前系统日期和时间的函数,返回一个datetime类型的值。例如,`SELECT GETDATE()`将返回服务器的当前日期和时间。 2. **DATEADD()**:此函数用于在给定的日期上添加或减去一定的时间单位...

    C语言中getopt()函数和select()函数的使用方法

    以下是一个简单的select()函数使用示例: ```c fd_set readset; FD_ZERO(&readset); FD_SET(fd, &readset); select(fd + 1, &readset, NULL, NULL, NULL); if (FD_ISSET(fd, readset)) { // 处理读事件 } ``` ...

Global site tag (gtag.js) - Google Analytics