1:linux一切皆文件!
因此具有打开,读写,关闭的功能
在写相关代码时,需要注意:设备节点是应用层和驱动通信的桥梁。通过insmod挂载后lsmod可以看到相关的驱动,在/dev/目录下看到的是驱动所生成的节点,所以数据的交互就是内核和应用层对这个节点的数据交互。
在kernel目录下,include/linux/fs.h定义了相关函数操作集,部分的操作如下:
ssize_t (*read) (struct file *, char __user *, size_t, loff_t *);
ssize_t (*write) (struct file *, const char __user *, size_t, loff_t *);
int (*open) (struct inode *, struct file *);
int (*release) (struct inode *, struct file *);(退出)
按照之前杂项设备的博文,struct file_operations misc_fops是一个文件操作集,可以在里面写相应的对文件的操作,如下:
struct file_operations misc_fops = {
.owner = THIS_MODULE,
.open = misc_open,
.read = misc_read,
.write = misc_write,
.release = misc_release,
};
然后再依次实现open&#