strace on cat /proc/my_file gives results by calling read twice why?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




hello,
      I have a /proc file kernel module with its proc
read function as
static char mybuf[1024];
ssize_t my_file_read(struct file *filp, char *buf,
size_t count, loff_t *ppos)
{
   printk("Reading a from a /proc file....\n");
   static int b_read = 0;

    int len = strlen(mybuf);

    if (len == 0 || b_read) {
        b_read = 0;
        return 0;
    }

    if (len > count - 1)
        len = count - 1;

    copy_to_user(buf, mybuf, len);
    put_user(0, &buf[len]);
    ++len;
    b_read = 1;
    return len;
}

when i strace cat /proc/my_file i found message
printing twice
Reading a from a /proc file....
Reading a from a /proc file....
       Why that happening?
          Also i check by writing to it as cat >
/proc/my_file
and got single result for write function call not
twice as for read.

regards,
cranium


	
		
__________________________________ 
Celebrate Yahoo!'s 10th Birthday! 
Yahoo! Netrospective: 100 Moments of the Web 
http://birthday.yahoo.com/netrospective/

--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           http://kernelnewbies.org/faq/


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux