Re: lseek on /proc/kmsg

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

 



On Wed, 23 Mar 2005, Jan Engelhardt wrote:


1> Sure, read() needs to be modified to respect the file-position
1> set by kmsg_seek(). I don't think you can get away with the
1> call back into do_syslog.

2>I'm not sure that seek makes any sense on that, since it is more like a
2>pipe than a normal file..

Well, seek(fd, 0, SEEK_END) could be used to flush a pipe's buffers.


Yep. That's what I tried to do. Just returns 0 and continues to
contain all the cached data.


0>> +static loff_t kmsg_seek(struct file *filp, loff_t offset, int origin) {
0>> +    if(origin != 2 /* SEEK_END */ || offset < 0) { return -ESPIPE; }
3> "Allow" seeking past the end of the buffer?

Well, what does lseek(fd, >0, SEEK_END) do on normal files?


Goes to the end plus offset. A subsequent read returns EOF
or 0 depending upon your read mechanism. This is what I wanted
to do but with no offset.

Currently, I do this crap:

    for(;;)
    {
        pfd.fd      = ifd;
        pfd.events  = POLLIN;
        pfd.revents = 0;
        if(poll(&pfd, 1, 0) <= 0)
            break;
        (void)read(ifd, ibuf, BUF_LEN);
    }

I should be able to just lseek(ifd, 0 SEEK_END);

--


Cheers,
Dick Johnson
Penguin : Linux version 2.6.11 on an i686 machine (5537.79 BogoMips).
 Notice : All mail here is now cached for review by Dictator Bush.
                 98.36% of all statistics are fiction.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux