Earnie Boyd wrote:
> 
> --- Andrej Borsenkow <[EMAIL PROTECTED]> wrote:
> > If a current directory is symlink, getcwd() on Unix returns directory, to
> > which this symlink points, while on Cygwin it returns directory itself:
> >
> > mw1g017@MW1G17C% ls -l . sub
> > .:
> > total 0
> > drwxr-xr-x   2 mw1g017  ITS             0 Oct 18 15:40 real
> > drwxr-xr-x   2 mw1g017  ITS             0 Oct 18 15:40 sub
> >
> > sub:
> > total 1
> > lrw-r--r--   1 mw1g017  ITS            18 Oct 18 15:40 fake -> ../real
> > mw1g017@MW1G17C% cd sub/fake
> > mw1g017@MW1G17C% /bin/pwd
> > /tmp/sub/fake
> >
> > while on Unix this returns /tmp/real.
> >
> > Is it intentional?
> >
> 
> It's implementation depedant.  On my HP-UX system it returns the symbolic link
> name.  I could find no documentation stating that it should return the actual
> directory.

And it's intentional as well. In earlier versions we had problems with
`find' if you had a structure like that:

        /
        /etc
        /usr
        /usr/etc -> linked to /etc
        /usr/lib

A find in /usr resulted in some senseless warning messages due to
the way `find' examines and changes thru the directory structure.

This is solved by the current implementation of chdir()/getcwd().

Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Developer                        mailto:[EMAIL PROTECTED]
Red Hat, Inc.
mailto:[EMAIL PROTECTED]

--
Want to unsubscribe from this list?
Send a message to [EMAIL PROTECTED]

Reply via email to