[ECOS] fopen() with 'w+' does not set O_CREAT

Kelvin Lawson klawson@ad-holdings.co.uk
Wed Mar 24 16:20:00 GMT 2004


Hi All,

I believe the mode settings have been implemented incorrectly for 
fopen(). If a file is opened 'w+', it should have O_CREAT set:

        w+     Open  for reading and writing.  The file is created
               if it does not exist, otherwise  it  is  truncated.
               The  stream  is  positioned at the beginning of the
               file.

However fopen() only sets O_RDWR, without O_CREAT. This is because w+ is 
translated to CYG_STREAM_READWRITE by process_mode(), which is 
translated to O_RDWR by cyg_stdio_open().

This was mentioned on the list a while ago but didn't seem to have any 
response:
http://sources.redhat.com/ml/ecos-discuss/2002-11/msg00333.html

Have I missed something here ? If not I'll send a patch.

Cheers,
Kelvin.



-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss



More information about the Ecos-discuss mailing list