This is the mail archive of the cygwin@sourceware.cygnus.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: BUG: open() O_ flags one bit too high


Cygwin uses win32 calls, not crtdll or msvcrt(XX)
calls, so the only way you can tell which flags
do what is to USE THE SOURCE LUKE ;-)
if you have had problems with open, you may
be using the wrong headers, DO NOT use vc++
or mingw32 headers when building cygwin apps.

On Sun, 5 Sep 1999 12:00:26 +0200, you wrote:

>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

________________________________________________________
NetZero - We believe in a FREE Internet.  Shouldn't you?
Get your FREE Internet Access and Email at
http://www.netzero.net/download/index.html

--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]