了解设备驱动程序的读写功能中的指针

时间:2019-08-30 12:22:17

标签: linux linux-device-driver

每个读/写功能都有一个参数loff_t *f_pos。我在示例中看到,在read函数中,当我们读取时,它会增加指针;在write函数中,当我们写入时,它会增加指针。

两者的指针是否相同?

ssize_t scull_write(struct file *filp, const char __user *buf, size_t count,loff_t *f_pos)
ssize_t scull_read(struct file *filp, char __user *buf, size_t count, loff_t *f_pos)

1 个答案:

答案 0 :(得分:0)

是的。但这是一个好问题。在实现驱动程序时,可以为读取和写入设置f_pos,并且调用代码将存储您提供的值。因此,从理论上讲,在后台可以将读写文件位置分开。

但是lseek的描述清楚地表明,读和写都位于一个位置。否则,我们将需要一个read_seek()和一个write_seek()。

相关问题