我读过,字符设备驱动程序的读取功能看起来像
static ssize_t device_read(struct file *filp, /* see include/linux/fs.h */
char *buffer, /* buffer to fill with data */
size_t length, /* length of the buffer */
loff_t * offset)
我的问题是
- 这些参数是强制性的吗?
- 无法看到示例驱动程序中使用的 *filp 和 *offset 。那有什么用?
- *buffer 和 *length 的数据实际上来自哪里?在代码中,据说缓冲区位于用户数据段中。实际上是什么意思?