> On Sun, Sep 26, 2010 at 12:30 PM, Venkatram Tummala < > venkatram...@gmail.com> wrote: > >> in your code you have done in memory_read >> >>> *f_pos = *f_pos + count; >>> >>> why have you done this? >>> What purpose it serves? >>> >> >> It updates the file pointer. >> >> Why is that important to update the pointer? Can this be not done without updating.
Your read function is ssize_t memory_read(struct file *filp, char __user *buf, size_t count, loff_t *f_pos) { if (*f_pos > 0) return 0; if (count > strlen(memory_buffer)) count = strlen(memory_buffer); copy_to_user(buf,memory_buffer,count); *f_pos = *f_pos + count; return count; } I am not able to understand why one needs to update f_pos to be able to write to userspace or when I am doing a cat /dev/bond