Two snapshot bugs
Earnie Boyd
earnie_boyd@yahoo.com
Tue Oct 10 11:53:00 GMT 2000
--- Chris Faylor <cgf@cygnus.com> wrote:
> On Tue, Oct 10, 2000 at 06:08:53PM +0100, Fifer, Eric wrote:
> >+ getcwd() seems to be busted:
> >
> > #include <stdio.h>
> > main() { printf("getcwd=%s\n", getcwd(NULL, 0)); }
> >
> > produces:
> >
> > getcwd=(null)
>
> In any description of getcwd that I"ve found, specifying '0' as the size
> means that you allocate a zero length buffer.
>
> The linux man page says this:
>
> As an extension to the POSIX.1 standard, getcwd() allo-
> cates the buffer dynamically using malloc() if buf is NULL
> on call. In this case, the allocated buffer has the
> length size unless size is less than zero, when buf is
> allocated as big as necessary. It is possible (and,
> indeed, advisable) to free() the buffers if they have been
> obtained this way.
>
> So 'getcwd (NULL, -1)' should return something but 'getcwd (NULL, 0)', IMO,
> should not.
>
And the "Single UNIX Specification" as copyrighted by the Open Group doesn't
even give it that much freedom. Gives an EINVAL error for size 0 and says that
if buf is a NULL pointer then the result is undefined. Reference:
http://www.opennc.org/onlinepubs/7908799/xsh/getcwd.html
Cheers,
=====
Earnie Boyd
mailto:earnie_boyd@yahoo.com
--- < http://earniesystems.safeshopper.com > ---
--- Cygwin: POSIX on Windows < http://gw32.freeyellow.com/ > ---
--- Minimalist GNU for Windows < http://www.mingw.org/ > ---
__________________________________________________
Do You Yahoo!?
Get Yahoo! Mail - Free email you can access from anywhere!
http://mail.yahoo.com/
--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com
More information about the Cygwin
mailing list