上一篇: php array占用内存测试
Windows上创建硬链接
[ 2010/09/27 16:33 | by selboo ]
Unix上可以方便的创建软链接和硬链接。可以提供额外的访问文件的接口而无需复制文件,大大减小了重复文件的空间浪费和维护问题,也减少了大文件复制的开销。
Windows上只能创建硬链接(快捷方式有点类似软链接,不过还是有不小的区别的),要求Win2000以上,而且只能在NTFS分区上用,也不能跨分区创建链接。但起码比没有好。
下面这个程序就是用来创建硬链接的。建立以后,修改一下其中一个文件,看一下另一个是不是也一起变了。^_^
用法:编译以后,比如生成nthl.exe。
nthl 目标链接 原始文件
如果发生错误,会输出错误信息。
源代码:
/* nthl.cpp */
/**
* 创建硬链接
*
* @author XieZhenye
*
*/
#ifdef _WIN32_WINNT
#undef _WIN32_WINNT<br/91;separator]>#endif
#define _WIN32_WINNT 0x0500
#include <windows.h>
#include <iostream>
using namespace std;
int main(int argc, char *argv[]){
if(argc < 3){
cout<<"not enough arguments. expected 2 but "<<argc<<endl;
return 0;
}
if(CreateHardLinkA(argv[1], argv[2], NULL)==0){
cout<<"Hard link create failed. Error code: "<<GetLastError()<<endl;
}
return 0;
}
/**
* 创建硬链接
*
* @author XieZhenye
*
*/
#ifdef _WIN32_WINNT
#undef _WIN32_WINNT<br/91;separator]>#endif
#define _WIN32_WINNT 0x0500
#include <windows.h>
#include <iostream>
using namespace std;
int main(int argc, char *argv[]){
if(argc < 3){
cout<<"not enough arguments. expected 2 but "<<argc<<endl;
return 0;
}
if(CreateHardLinkA(argv[1], argv[2], NULL)==0){
cout<<"Hard link create failed. Error code: "<<GetLastError()<<endl;
}
return 0;
}
程序很简单,但我自己编译的时候碰到了不少麻烦。MS自己的东西,用VC6怎么也编译不通过,最后还是用Dev C++才编译出来的。
最后编辑: selboo 编辑于2010/09/27 16:33