Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Date: Wed, 10 Jul 2002 12:50:14 -0400 From: Christopher Faylor To: cygwin AT cygwin DOT com Subject: Re: [BUG] open(): Opening with flags O_RDONLY | O_APPEND positions the file pointer at the end of the file Message-ID: <20020710165014.GB11381@redhat.com> Reply-To: cygwin AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com References: <823876622 DOT 20020710153943 AT syntrex DOT com> <20020710163613 DOT GD10966 AT redhat DOT com> <20020710184830 DOT J24137 AT cygbert DOT vinschen DOT de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20020710184830.J24137@cygbert.vinschen.de> User-Agent: Mutt/1.3.23.1i On Wed, Jul 10, 2002 at 06:48:30PM +0200, Corinna Vinschen wrote: >On Wed, Jul 10, 2002 at 12:36:13PM -0400, Chris Faylor wrote: >> On Wed, Jul 10, 2002 at 03:39:43PM +0200, Pavel Tsekov wrote: >> >Hello, there :) >> > >> >Attached is a testcase which displays the problem. On Linux it will >> >properly return 13, while on cygwin it returns 0. >> > >> >I found this while trying to understand why MC doesn't extract >> >properly files from say .zip files. >> > >> >I don't know exactly why they call O_RDONLY combined with O_APPEND but >> >I will mail the mc-devel list ASAP. >> > >> >Still according to the Linux man page and SUSv2, O_APPEND should be >> >taken into account only when writing to the file. >> > >> >Having in mind that fhandler_base::write() calls SetFilePointer >> >before each write, I wonder why fhandler_disk_base::open calls >> >SetFilePointer when it detects O_APPEND ? >> >> Good question. > >What if > > fd = open(O_APPEND); > pos = lseek(fd, 0, SEEK_CUR); > >? If open() doesn't move the pointer, `pos' is incorrectly set to 0. Actually, I'd argue that, in that case, lseek should have some O_APPEND logic of its own. cgf -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/