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

【Orange Pi 5 Linux 5.x 内核编程】-字符设备文件操作基础

字符设备文件操作基础

文章目录

  • 字符设备文件操作基础
    • 1、cdev结构
    • 2、文件结构
      • 2.1 read操作
      • 2.2 write操作
      • 2.3 ioctl操作
      • 2.4 open操作
      • 2.5 release(close)操作
    • 3、简单设备文件操作实现
    • 4、驱动验证

在前面的文章中,介绍了设备的主要、次要编号和设备文件,应用程序如果需要与硬件通信,这就涉及到对设备文件的打开、读、写、关闭等等操作。毕竟,在Linux中,一切旨为文件。本文将重点介绍这些操作。

1、cdev结构

在 Linux 内核中,struct inode 结构用于表示文件。 因此,它不同于表示打开文件描述符的文件结构。 可以有许多文件结构代表单个文件上的多个打开描述符,但它们都指向单个 inode 结构。

inode 结构包含有关文件的大量信息。 作为一般规则,cdev 结构对于编写驱动程序代码很有用:

struct cdevinode 结构的元素之一。 您可能已经知道,内核在内部使用 inode 结构来表示文件。 struct cdev 是表示字符设备的内核内部结构。 当 inode 引用字符设备文件时,该字段包含指向该结构的指针。

struct cdev</

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

相关文章:

  • vscode导入模块不显示类型注解
  • (二叉树)
  • React 中hooks之 React.memo 和 useMemo用法总结
  • BH1750使用程序
  • 使用nginx搭建通用的图片代理服务器,支持http/https/重定向式图片地址
  • 上位机工作感想-2024年工作总结和来年计划
  • ssm011线上旅行信息管理系统(论文+源码)_kaic
  • 基于SpringBoot的“超市进销存系统”的设计与实现(源码+数据库+文档+PPT)
  • 面向对象进阶(下)(JAVA笔记第二十五期)
  • 【STM32-HAL库】火焰传感器(STM32F407ZGT6)(附带工程下载链接)
  • spring-第十二章 GoF代理模式
  • Android Studio安装完成后,下载gradle-7.4-bin.zip出现连接超时
  • 将 Logstash 管道转换为 OpenTelemetry Collector 管道
  • JavaScript如何判断变量数据类型 - 2024最新版前端秋招面试短期突击面试题【100道】
  • SpringBoot 集成RabbitMQ 实现钉钉日报定时发送功能
  • [LeetCode] 526. 优美的排列
  • Docker | 校园网上docker pull或者docker run失败的一种解决方法
  • 探索C嘎嘎:认识string类
  • 【大数据分析与挖掘模型】matlab实现——非线性回归预测模型
  • 【计算机网络 - 基础问题】每日 3 题(五十七)
  • 《等保测评:安全与发展的双轮驱动》
  • 14 C语言中的关键字
  • Prometheus+Telegraf实现自定义监控项配置
  • RDD的常用转换算子
  • Qt实现播放器顶部、底部悬浮工具栏
  • typescript学习计划(一)--简单介绍typescript