Wrong documentation for open()
Fri Apr 10 09:56:00 GMT 2015
just to explain why this bug exists:
AFAIK, Unix originally had a two argument open(2). creat(2) was used to create new files.
At some point, open(2) was changed to also be able to create new files. For this case,
a extra third argument was required.
For the ABIs (and K&R C) on which Unix ran at that time, this did not make a difference in practice;
code could and still can use the two argument version.
With ANSI C, it was possible to
specify this interface in terms of variable argument lists.
> -----Original Message-----
> From: firstname.lastname@example.org [mailto:email@example.com]
> On Behalf Of Friedrich Lobenstock
> Sent: Donnerstag, 9. April 2015 18:03
> To: firstname.lastname@example.org
> Subject: Re: Wrong documentation for open()
> Hello Eric!
> Eric Blake wrote on 2015-04-09 17:38 MET:
> >> > The documentation, eg. the online version at
> >> > <https://sourceware.org/newlib/libc.html#index-open>, is wrong in
> >> > regards to the implementation of open().
> >> >
> >> > In the documentation the signature of open() is defined as:
> >> > int open(const char *name, int flags, int mode)
> > That's documented merely as a minimum implementation; it always
> > so it doesn't matter whether va_args is parsed compatibly or anything
> > else. I see nothing wrong with that documentation being a bare
> > minimum, [...]
> BUT there's no documentation for open() other than in the minimum
> implementation section!
> MfG / Regards
> Friedrich Lobenstock
More information about the Newlib