Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S261551AbVCWMQc (ORCPT ); Wed, 23 Mar 2005 07:16:32 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S261540AbVCWMQc (ORCPT ); Wed, 23 Mar 2005 07:16:32 -0500 Received: from alog0307.analogic.com ([208.224.222.83]:41381 "EHLO chaos.analogic.com") by vger.kernel.org with ESMTP id S261552AbVCWMOZ (ORCPT ); Wed, 23 Mar 2005 07:14:25 -0500 Date: Wed, 23 Mar 2005 07:11:53 -0500 (EST) From: linux-os Reply-To: linux-os@analogic.com To: Jan Engelhardt cc: Linux kernel Subject: Re: lseek on /proc/kmsg In-Reply-To: Message-ID: References: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1664 Lines: 55 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 majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/