delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2008/10/31/06:04:17

X-Recipient: archive-cygwin AT delorie DOT com
X-Spam-Check-By: sourceware.org
Message-ID: <f60fe000810310403k287b12few441d09d720f1d24d@mail.gmail.com>
Date: Fri, 31 Oct 2008 07:03:28 -0400
From: "Mark J. Reed" <markjreed AT gmail DOT com>
To: cygwin AT cygwin DOT com
Subject: Re: canonicalize_file_name
In-Reply-To: <20081031082454.GB12818@calimero.vinschen.de>
MIME-Version: 1.0
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
List-Id: <cygwin.cygwin.com>
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
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 <markjreed AT gmail DOT com>

--
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/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019