On 12/02, Jacob Keller wrote: > On Fri, Dec 2, 2016 at 11:28 AM, Stefan Beller <sbeller@xxxxxxxxxx> wrote: > > On Fri, Dec 2, 2016 at 11:20 AM, Jacob Keller <jacob.keller@xxxxxxxxx> wrote: > >>> > >>> So is there a reason why the library function realpath() can't be used? > >>> From a cursory look at its man page it seems to do the symlink > >>> resolution. > >>> > >>> -- > >>> Brandon Williams > >> > >> I believe it uses the same method and thus wouldn't actually resolve > >> the issue. But I'm not really 100% sure on this. > >> > >> Thanks, > >> Jake > > > > I just reviewed 2 libc implementations (glibc and an Android libc) and > > both of them > > do not use chdir internally, but use readlink and compose the path 'manually' > > c.f. http://osxr.org:8080/glibc/source/stdlib/canonicalize.c?v=glibc-2.13 > > Interesting. Would this be portable to Windows, though? Perhaps. It looks like the only crazy thing it does is use readlink, which our real_path function is already doing. I don't think we could drop in their implementation though since there are other things that it does that aren't portable to windows (like determining if a path is absolute or not). Rather their implementation gives me some hope that it is possible to resolve the real path without using chdir. -- Brandon Williams