目录
file_oprations整体解析
int (*open) (struct inode *, struct file *);
int (*release) (struct inode *, struct file *);
ssize_t (*read) (struct file *, char __user *, size_t, loff_t *);
ssize_t (*write) (struct file *, const char __user *, size_t, loff_t *);
copy_to_user copy_from_user
file_oprations整体解析
struct file_operations {
struct module *owner;//拥有该结构的模块的指针,一般为THIS_MODULES
loff_t (*llseek) (struct file *, loff_t, int);//用来修改文件当前的读写位置
ssize_t (*read) (struct file *, char __user *, size_t, loff_t *);//从设备中同步读取数据
ssize_t (*write) (struct file *, const char __user *, size_t, loff_t *);//向设备发送数据
ssize_t (*aio_read) (struct kiocb *, const struct iovec *, unsigned long, loff_t);//初始化一个异步的读取操作
ssize_t (*aio_write) (struct kiocb *, const struct iovec *, unsigned long, loff_t);//初始化一个异步的写入操作
int (*readdir) (struc

本文介绍了Linux驱动中file_operations结构体的详细内容,包括open、release、read和write等成员函数的作用和用法。重点讨论了open函数的返回值,说明了其在设备打开过程中的重要性。同时,提到了copy_to_user和copy_from_user函数在数据传输中的角色。
最低0.47元/天 解锁文章
108

被折叠的 条评论
为什么被折叠?



