delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/1999/09/05/13:05:13

Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT sourceware DOT cygnus DOT com>
List-Subscribe: <mailto:cygwin-subscribe AT sourceware DOT cygnus DOT com>
List-Archive: <http://sourceware.cygnus.com/ml/cygwin/>
List-Post: <mailto:cygwin AT sourceware DOT cygnus DOT com>
List-Help: <mailto:cygwin-help AT sourceware DOT cygnus DOT com>,
<http://sourceware.cygnus.com/ml/#faqs>
Sender: cygwin-owner AT sourceware DOT cygnus DOT com
Delivered-To: mailing list cygwin AT sourceware DOT cygnus DOT com
From: Chris Faylor <cgf AT cygnus DOT com>
Date: Sun, 5 Sep 1999 13:06:18 -0400
To: Victor Szel <info AT szelvesz DOT hu>
Cc: cygwin AT sourceware DOT cygnus DOT com
Subject: Re: BUG: open() O_ flags one bit too high
Message-ID: <19990905130618.A754@cygnus.com>
Reply-To: cygwin AT sourceware DOT cygnus DOT com
Mail-Followup-To: Victor Szel <info AT szelvesz DOT hu>,
cygwin AT sourceware DOT cygnus DOT com
References: <002a01bef73b$13244db0$0a0ac8c8 AT VECWS1> <19990905021026 DOT A8934 AT cygnus DOT com> <005e01bef777$eff7b5b0$0a0ac8c8 AT VECWS1>
Mime-Version: 1.0
X-Mailer: Mutt 0.95.6i
In-Reply-To: <005e01bef777$eff7b5b0$0a0ac8c8@VECWS1>; from Victor Szel on Sun, Sep 05, 1999 at 10:23:29AM +0200

On Sun, Sep 05, 1999 at 10:23:29AM +0200, Victor Szel wrote:
>> >#ifdef __CYGWIN__
>> >/* TODO: Get Cygwin fixed so that this bug fix won't be needed */
>> >static inline int FixCygwinIOflags( int flags )
>> >{
>> >   /* Starting with O_CREAT, the Cygwin I/O flags are 1 bit too high */
>> >   return ( ( flags & 0x1FF00 ) >> 1 ) | ( flags & 0xFF );
>> >}
>> >#endif
>> 
>> System O_CREAT (octal) O_CREAT (hex)
>> ----------------------------------------------------
>> Cygwin 01000 0x200
>> Digital UNIX 01000 0x200
>> FreeBSD 01000 0x200
>> Irix 00400 0x100
>> Linux 00100 0x040
>> SCO UNIX 3.2 00400 0x100
>> Solaris 00400 0x100
>> Ultrix 01000 0x200
>> 
>> What was the bug again?
>
>It could be that it's some sort of feature/bug in WinNT and not in Cygwin then, 
>since the O_CREAT flag passed to open() was 0x200, but open always 
>returned -1 in this case. WinNT 4.0 SP5 and Win2000 Build 2072 is the 
>same in this respect. If this is the case, a workaround in Cygwin could be 
>worth considering.

If you are using the open in cygwin then it open() will correctly use
O_CREAT.  It would be inconceivable that this could be wrong.  If it
was, then hundreds of applications would not work.

If you're using cygwin headers in a non-cygwin (aka mingw) application,
then, um, that's wrong.  You should be using another set of headers.
I'm sure that someone will coment on this and let you know which they
should be.

-chris

--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019