This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

fopen() with 'w+' does not set O_CREAT


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


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