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

AltStyle によって変換されたページ (->オリジナル) /