develooper Front page | perl.perl5.porters | Postings from January 2009

RE: S_IFLNK() Availability on Win32 (and other non-UNIX systems)

Thread Previous | Thread Next
From:
Jan Dubois
Date:
January 14, 2009 16:26
Subject:
RE: S_IFLNK() Availability on Win32 (and other non-UNIX systems)
Message ID:
00f601c976a7$ccf16d40$66d447c0$@com
On Wed, 14 Jan 2009, Ben Morrow wrote:
> Quoth rgarciasuarez@gmail.com ("Rafael Garcia-Suarez"):
> >
> > Dunno. Does Windows 7 implement symbolic links ? I think that's
> > unlikely.
>
> Windows has had symlinks (and hard links) when using NTFS since at
> least Win2k, but they aren't much used and there isn't any libc
> support (also, Explorer tends to get a little confused by them).
> Win32::Symlink provides symlink(2) and readlink(2) replacements,
> but not lstat(2). If someone wanted to do the work, it might be
> nice for perl's lstat &c. to support them, but it's likely not
> worth the effort.

The Win32::Symlink module is somewhat misnamed, as it actually creates
NTFS junctions and not symbolic links. Junctions are only at the
directory level and can only point to other directories within the same
filesystem.  Junctions in Win2K and WinXP are also rather fragile:
If you ever delete a junction with Explorer, or del/s you end up
deleting the whole tree the junction was pointing to. :(

NTFS symbolic links are only supported on Windows Vista, Windows 2008,
and Windows 7 as far as I know. But maybe Perl should abstract both
junctions and symbols links behind readlink() and lstat().

Cheers,
-Jan



Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About