Small amount of work, just 1 function call on NT 5, http://msdn.microsoft.com/en-us/library/windows/desktop/aa363860%28v=vs.85%29.aspx. Use a CPAN module Win32::HardLink as mentioned in the thread, no need to reinvent the wheel. On NT4, there is a method using BackupWrite() which is public API, or go use Native API (only 4 function calls, see http://doxygen.reactos.org/df/d8e/hardlink_8c_source.html#l00024), but that is alot of work and definitely not easy, personal experience. Native API gives you the all the power, buttons, gauges and dials of pre-SCADA nuclear reactor, along with the learning curve of operating it. | [reply] |
C:\test>dir /b pete*
File Not Found
C:\test>mklink /h pete.exe \perl64\bin\perl.exe
Hardlink created for pete.exe <<===>> \perl64\bin\perl.exe
C:\test>pete -v
This is perl, v5.10.1 built for MSWin32-x64-multi-thread
[snip]
C:\test>del pete.exe
C:\test>perl -MWin32::Hardlink -E"say link( 'pete.exe', '\\perl64\\bin
+\\perl.exe' )"
CreateHardLink( "\perl64\bin\perl.exe", "pete.exe" ) failed with error
+ 2.
0
C:\test>pete -v
'pete' is not recognized as an internal or external command,
operable program or batch file.
Win32::Symlink works after a fashion, but looking at the code that underlies it, I wouldn't want to rely upon it.
With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
| [reply] [d/l] |