Boost logo

Boost :

From: Victor A. Wagner, Jr. (vawjr_at_[hidden])
Date: 2003-11-24 16:06:18


There _is_ a mechanism for creating hard links to directories on NTFS. I
don't know what the relevant runtime calls are, but I have a utility that
creates them. When you do a dir on a directory which has some they show up
as <JUNCTION> instead of <DIR> see following:

  Directory of C:\Projects\Include

2003-11-24 02:02 <DIR> .
2003-11-24 02:02 <DIR> ..
2003-11-22 06:34 37 .cvsignore
2003-11-01 23:56 <JUNCTION> boost
2003-04-27 11:13 <DIR> Ced
2003-11-24 02:02 <DIR> CVS
2003-04-27 11:13 <DIR> Datx
2003-04-27 11:13 <DIR> Edt
2003-04-27 11:13 <DIR> FlexLM
2003-04-27 11:13 <DIR> igloo
2003-04-27 11:13 <DIR> Intel
2003-10-14 21:01 <DIR> KokopelliTechnology
2003-04-27 11:13 <DIR> Matlab
2003-04-27 11:13 <DIR> Mcc
2003-08-19 13:09 <DIR> Nlx
2003-11-22 07:39 <DIR> PGL7.1
2003-11-01 23:57 <JUNCTION> python
2003-11-03 10:55 <DIR> QtPGL
2003-04-27 11:13 <DIR> Rainbow
2003-04-27 11:13 <DIR> Rsa
2003-04-27 11:13 <DIR> Sealevel
2003-11-02 16:17 <JUNCTION> sqlite
2003-04-27 11:13 <DIR> Utility
                1 File(s) 37 bytes
               22 Dir(s) 16,553,005,056 bytes free
At Monday 2003-11-24 11:47, you wrote:
>Peter Dimov wrote:
>
> >Beman Dawes wrote:
> >> At 05:53 PM 11/21/2003, Peter Dimov wrote:
> >
> >[about reference counted links]
> >
> >>> It doesn't make sense to talk about shallow or deep semantics here.
> >>
> >> That's usually correct, but there are a few query operations where the
> >> shallow/deep issue might matter, depending on the operating system.
> >> Size/date/time being examples.
> >
> >Do you have a specific OS in mind? Size is a particularly interesting
> >example. ;-)
>
>No, except that size is problematic on many file systems, so it wouldn't
>surprise me at all if size for a reference counted link is sometimes
>troublesome.
>
>That being said, Boost.Filesystem could support a create_link() function
>based on POSIX link() and Windows CreateHardLink(). While it would be
>portable between POSIX and Windows for files, for directories it would
>always fail on Windows, and might fail on POSIX (because the functionality
>is optional for POSIX directories.
>
>I'm somewhat worried about providing a function with so many caveats.
>Also, no one has asked for it.
>
> >From C++ point of view it is reasonable to consider a symlink something
> >that when passed to std::fopen actually opens another file. Under this
> >definition .lnk does not appear to be a symlink.
>
>Yes, that's what I've been thinking. So I don't think Boost.Filesystem
>should provide a function to create symlinks; it would be too non-portable.
>
>OTOH, providing an is_symbolic_link() function which always returns false
>on Windows would allow users to write correct portable directory recursion
>programs similar to remove_all.
>
>--Beman
>
>_______________________________________________
>Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
>

Victor A. Wagner Jr. http://rudbek.com
The five most dangerous words in the English language:
               "There oughta be a law"


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk