standards/142255: scandir prototype in dirent.h isn't compliant
with POSIX 2008
Kostik Belousov
kostikbel at gmail.com
Thu Jan 7 00:30:03 UTC 2010
On Wed, Jan 06, 2010 at 06:55:47PM -0500, Garrett Wollman wrote:
> <<On Sun, 3 Jan 2010 15:00:11 GMT, Kostik Belousov <kostikbel at gmail.com> said:
>
> > The change of the prototype shall also fix alphasort(3). And then, each
> > in-tree consumer should be updated.
>
> > scandir(3) is historical BSD interface, that only appeared in SUSv4.
> > It seems that Solaris and possibly glibc are conforming, so FreeBSD
> > should probably follow the route.
>
> I believe someone at least complained about the Standard's broken
> prototypes, subsequent to the approval of the current standard,
> although I don't recall what the outcome was.
>
> > @@ -95,7 +95,7 @@ typedef void * DIR;
> > __BEGIN_DECLS
> > #if __BSD_VISIBLE
> > DIR *__opendir2(const char *, int);
> > -int alphasort(const void *, const void *);
> > +int alphasort(const struct dirent **, const struct dirent **);
> > int getdents(int, char *, int);
> > int getdirentries(int, char *, int, long *);
> > #endif
>
> If we're going to break the historical 4.4BSD prototype to match the
> broken one in SUSv4, the declaration should be moved to an appropriate
> section of the header file. (I haven't checked -- is this interface
> in the base standard or the XSI option? If the latter we should just
> ignore it -- we should not be trying to implement XSI's mistakes.)
See r201602.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-standards/attachments/20100107/9a0a7de9/attachment.pgp
More information about the freebsd-standards
mailing list