当前位置: 首页 > article >正文

【RK3588 Linux 5.x 内核编程】-内核IO复用与select

内核IO复用与select

文章目录

  • 内核IO复用与select
    • 1、select介绍
    • 2、内核驱动中使用Select
    • 3、用户空间程序实现
    • 4、测试验证

在前面的文章中,详细介绍了如何在内核驱动程序中实现poll和用户空间应用程序使用poll。本文将详细介绍如何在内核驱动中实现select和用户程序如何使用select。

1、select介绍

select API 应该在几年前就被弃用了。 但它仍然存在。 Select 提供与轮询相同的功能。如何在应用程序中使用Select?

在我们介绍 select API 之前,我们必须熟悉一些其他的宏。 我们将监听文件描述符的读取、写入和错误事件。 所以必须将文件描述符传递给选择 API。 可以使用以下宏操作文件描述符集的内容:

  • FD_ZERO():该宏清除(从中删除所有文件描述符)集合。 它应该被用作初始化文件描述符集的第一步。
  • FD_SET():该宏将文件描述符 fd 添加到集合中。 添加已存在于集合中的文件描述符是空操作,不会产生错误。
  • FD_CLR():该宏从集合中删除文件描述符 fd。 删除集合中不存在的文件描述符是空操作,不会产生错误。
  • FD_ISSET():select 根据下面描述的规则修改集合的内容。调用 select() 后,FD_ISSET() 宏可用于测试文件描述符是否仍存在于集合中。 如果文件描述符 fd 存在于集合中,FD_ISSET() 返回非零值࿰

http://www.kler.cn/a/460046.html

相关文章:

  • 【赵渝强老师】MongoDB写入数据的过程
  • 2025编程技术前沿:探索最新的开发工具与趋势
  • 【MySQL基础篇】三、表结构的操作
  • Linux Red Hat 7.9 Server安装GitLab
  • 如何使用axios实现并发请求
  • SpringBoot异步线程@Async的使用注意
  • 防火墙基础-工作原理
  • 爱思唯尔word模板
  • UE(虚幻)学习(二) 使用UnrealSharp插件让UE支持C#脚本
  • Harbor(2.3.0)的定制页面与安装(x86 arm)
  • 科龙空调:以创新科技,适配多元家居场景
  • 最短路径-Dijkstra 算法
  • 【记录】列表自动滚动轮播功能实现
  • 如何恢复永久删除的PPT文件?查看数据恢复教程!
  • STM32中断详解
  • RabbitMQ基础篇之数据隔离
  • 【机器学习】机器学习的基本分类-半监督学习-半监督生成对抗网络(Semi-supervised GANs)
  • Effective C++ 条款41:了解隐式接口和编译期多态
  • mysql只恢复某个库或某个表
  • 算法环境安装GPU驱动、CUDA、cuDNN、Docker及NVIDIA Container Toolkit
  • node.js文件压缩包解析,反馈解析进度,解析后的文件字节正常
  • Ungoogled Chromium127编译指南 Linux篇 - 项目要求(二)
  • 华为,新华三,思科网络设备指令
  • 异步爬虫之aiohttp的使用
  • fetch请求代码
  • 大数据_HBase的列族属性配置