X-Recipient: archive-cygwin AT delorie DOT com X-Spam-Check-By: sourceware.org Message-ID: Date: Fri, 31 Oct 2008 07:03:28 -0400 From: "Mark J. Reed" To: cygwin AT cygwin DOT com Subject: Re: canonicalize_file_name In-Reply-To: <20081031082454.GB12818@calimero.vinschen.de> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <001b01c93a65$97134460$4001a8c0 AT mycomputer> <49099F53 DOT 9060105 AT byu DOT net> <20081030121050 DOT GL6478 AT calimero DOT vinschen DOT de> <007f01c93abc$68806f40$4001a8c0 AT mycomputer> <20081031082454 DOT GB12818 AT calimero DOT vinschen DOT de> X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com John Emmas> Calling 'canonicalize_file_name(path)' is equivalent to calling JE> 'realpath(path, NULL)' By a stroke of luck, 'realpath()' is defined in JE> cygwin/stdlib.h so maybe I should use that? Corinna Vinschen> Yes, sure. Yes, you should use realpath(), but passing it NULL won't necessarily work. The second argument is supposed to be a pointer to the buffer in which it should put its result, and according to POSIX the call should fail if that argument is NULL. GNU has extended its version of realpath() to dynamically allocate a result buffer when the second argument is NULL. I would not assume that Cygwin does likewise, since it's a libc function and Cygwin doesn't use GNU libc. The safest course would be to declare or preallocate a buffer of size PATH_MAX and pass it to realpath(); that should work with any POSIX-compliant C library. -- Mark J. Reed -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/