delorie.com/archives/browse.cgi | search |
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 |
Message-ID: | <00f201bef785$7ac2cb50$0a0ac8c8@VECWS1> |
From: | "Victor Szel" <info AT szelvesz DOT hu> |
To: | <cygwin AT sourceware DOT cygnus DOT com> |
Subject: | Re: BUG: open() O_ flags one bit too high |
Date: | Sun, 5 Sep 1999 12:00:26 +0200 |
Organization: | Szelvesz Bt. |
MIME-Version: | 1.0 |
X-Priority: | 3 |
X-MSMail-Priority: | Normal |
X-Mailer: | Microsoft Outlook Express 5.00.2918.2701 |
X-MimeOLE: | Produced By Microsoft MimeOLE V5.00.2918.2701 |
Chris, > > >#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. After digging a bit more here's a snippet from the FCNTL.H supplied with MS VC++ 4: #define _O_CREAT 0x0100 /* create and open file */ #define _O_TRUNC 0x0200 /* open and truncate */ #define _O_EXCL 0x0400 /* open only if file doesn't already exist */ #define O_CREAT _O_CREAT #define O_TRUNC _O_TRUNC #define O_EXCL _O_EXCL Victor Szel -- Want to unsubscribe from this list? Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |