Two snapshot bugs

Chris Faylor cgf@cygnus.com
Tue Oct 10 11:06:00 GMT 2000


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.

cgf

--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com



More information about the Cygwin mailing list