字符设备文件操作基础
文章目录
- 字符设备文件操作基础
-
- 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 cdev
是 inode
结构的元素之一。 您可能已经知道,内核在内部使用 inode 结构来表示文件。 struct cdev
是表示字符设备的内核内部结构。 当 inode
引用字符设备文件时,该字段包含指向该结构的指针。
struct cdev</