This is the mail archive of the
newlib@sourceware.org
mailing list for the newlib project.
RE: Wrong documentation for open()
- From: "Schwarz, Konrad" <konrad dot schwarz at siemens dot com>
- To: "newlib at sourceware dot org" <newlib at sourceware dot org>
- Date: Fri, 10 Apr 2015 08:09:10 +0000
- Subject: RE: Wrong documentation for open()
- Authentication-results: sourceware.org; auth=none
- References: <552698AD dot 5030102 at lsl dot at> <55269D01 dot 5090807 at redhat dot com> <5526A29B dot 9020603 at fl dot priv dot at>
Hi Friedrich,
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.
Regards
Konrad
> -----Original Message-----
> From: newlib-owner@sourceware.org [mailto:newlib-owner@sourceware.org]
> On Behalf Of Friedrich Lobenstock
> Sent: Donnerstag, 9. April 2015 18:03
> To: newlib@sourceware.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
> fails,
> > 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