Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin AT sources DOT redhat DOT com Message-ID: <20001010185300.23932.qmail@web109.yahoomail.com> Date: Tue, 10 Oct 2000 11:53:00 -0700 (PDT) From: Earnie Boyd Subject: Re: Two snapshot bugs To: cygwin AT sources DOT redhat DOT com MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii --- Chris Faylor wrote: > On Tue, Oct 10, 2000 at 06:08:53PM +0100, Fifer, Eric wrote: > >+ getcwd() seems to be busted: > > > > #include > > 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 AT yahoo DOT com --- --- --- Cygwin: POSIX on Windows --- --- Minimalist GNU for Windows --- __________________________________________________ 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 AT sourceware DOT cygnus DOT com