From: Beman Dawes (bdawes_at_[hidden])
Date: 2003-11-18 12:35:12
At 12:35 AM 11/15/2003, Walter Landry wrote:
>I found that remove_all wants to follow symlinks when recursing. This
>causes it to fail if the target of the link does not exist. It also
>seems a little dangerous.
I think you're right. Like remove(), remove_all() should not follow
symbolic links when recursing.
> I have attached a patch to fix that.
The patch uses is_link(), and its specs need to be nailed down.
There are two questions that need to be answered:
[Help needed from POSIX programmers on the following.]
* Does S_ISLNK() return true only for symbolic links, and never for regular
reference-counted links? If so, that means is_link() never returns true
except for symbolic links, so I'd rather call it is_symbolic_link().
[Help needed from Win32 programmers on the following.]
* Can is_symbolic_link() just return false on Windows?
Windows does have some similar concepts - shortcuts and journals - but the
behavior seems different from a POSIX-style symbolic link. Particularly,
shortcuts by default seem to exhibit shallow rather than deep behavior, and
seem more an application (shell) artifact rather than a kernel feature. But
maybe I don't understand them - any pointers to an underlying API would be
appreciated. And I certainly don't understand journal points. Windows does
have reference counted hard links, very similar to POSIX links, but that
isn't the issue here.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk