news 2026/1/13 22:07:40

54、深入解析STREAMS机制:从流头操作到终端控制

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
54、深入解析STREAMS机制:从流头操作到终端控制

深入解析STREAMS机制:从流头操作到终端控制

1. 流头操作:qattach()与qdetach()

当打开一个模块或驱动程序时,qattach()函数会被调用。其主要作用是为驱动程序或模块设置一个队列对,并调用其open函数。qattach()的参数之一是一个现有的队列对,新的队列对将链接到该队列对之下。具体处理步骤如下:
1. 分配一个新的队列对。
2. 从cdevsw[]fmodsw[]条目中找到驱动程序或模块的streamtab
3. 调整新队列对和现有队列对中的指针,使它们相互指向,从而将它们链接到流中。
4. 初始化队列对的qinit结构,该结构保存了队列的处理例程信息,如最小和最大数据包大小、高低水位标记等。
5. 调用新附加模块或驱动程序的open程序。
6. 如果打开操作导致设备信息发生变化,qattach()会识别这是一次克隆打开操作,并调整qinfo指针,使其指向实际打开的驱动程序的streamtab

qdetach()函数则执行相反的操作。它将队列从流中解除链接,调用模块或驱动程序的close函数,然后释放该队列。

2. 基于STREAMS的管道和F
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/11 5:50:10

IDE透明视频播放插件:提升编程体验的多媒体解决方案

IDE透明视频播放插件:提升编程体验的多媒体解决方案 【免费下载链接】intellij-media-player 【🐟摸鱼专用】上班偷偷看视频📺而不会被老板打🔨的IDE插件,适配JetBrains全家桶 项目地址: https://gitcode.com/gh_mir…

作者头像 李华
网站建设 2026/1/11 7:18:15

快速文件传输神器:5分钟掌握transfer的完整使用指南

快速文件传输神器:5分钟掌握transfer的完整使用指南 【免费下载链接】transfer 🍭 集合多个API的大文件传输工具. 项目地址: https://gitcode.com/gh_mirrors/tr/transfer 还在为文件传输烦恼吗?无论你是需要临时分享文档给同事&#…

作者头像 李华
网站建设 2026/1/5 19:45:23

常见类后续,泛型,文件

引言 常见类后续较为重要的大体可以概述为“集合List","字典Dictionary",二者均为容器对象(存储多个元素),二者异中有同 List集合: 可变长度(扩容), 提供丰富方法, 元素可重复 字典: 可变长度(扩容),提供丰富方法, key-value…

作者头像 李华
网站建设 2026/1/13 2:17:59

yaml-cpp内存优化策略深度解析:从性能瓶颈到高效解决方案

yaml-cpp内存优化策略深度解析:从性能瓶颈到高效解决方案 【免费下载链接】yaml-cpp A YAML parser and emitter in C 项目地址: https://gitcode.com/gh_mirrors/ya/yaml-cpp 在C项目开发中,YAML配置文件的解析性能往往成为系统瓶颈,…

作者头像 李华
网站建设 2026/1/9 22:13:51

JSP如何结合多线程技术提升大文件上传效率?

大文件传输解决方案技术提案 项目背景与需求分析 作为山东某软件公司项目负责人,我公司需要为大文件传输提供一套完整的解决方案。经过详细的需求梳理,总结出以下几个关键需求点: 大文件传输能力:支持单文件100GB左右的上传下载…

作者头像 李华