.read
также должна правильно обрабатывать свои аргументы len
и off
. Самый простой способ реализовать чтение из файла с буферизацией памяти - использовать хелпер simple_read_from_buffer
:
static ssize_t dev_read(struct file *filp, char *buff, size_t len, loff_t *off)
{
return simple_read_from_buffer(buff, len, off, msg, 100);
}
Вы можете проверить код этого помощника (определенный в fs/libfs.c
) для образовательных целей.
BTW, для вашего метода .write
вы можете использовать помощник simple_write_to_buffer
.