这是网上的一个示例
/*
/* 创建指定大小的空文件,支持超大文件(16EB),小于4GB时,
/* 参数dwHigh可传入0,
/* 成功返回0, 失败返回错误代码
*/
BOOL CreateNullFile(DWORD dwHigh, DWORD dwLow, LPCTSTR lpcszFileName)
{
BOOL bResult = FALSE;
// 创建文件对象
HANDLE hFile = ::CreateFile(lpcszFileName, GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if (INVALID_HANDLE_VALUE == hFile)
{
return (BOOL)::GetLastError();
}
// 创建文件映射对象
HANDLE hFileMap = ::CreateFileMapping(hFile, NULL, PAGE_READWRITE, dwHigh, dwLow, NULL);
if (NULL == hFileMap)
{
return (BOOL)::GetLastError();
}
::CloseHandle(hFileMap);
::CloseHandle(hFile);
return bResult;
}
这里记录下怎么用;比如:在Windows程序下,这里建立WinTest的win32程序
.在WinTest.cpp中的int APIENTRY _tWinMain()函数中加入
// TODO: 在此放置代码。
CString str;
str = C:\\Users\\Administrator\\Desktop\\CommonTest\\buy.exe
CreateNullFile(0, 1024, str); // 这里创建一个1024字节的路径为str名字为buy.exe的空文件
编译运行就可以在C:\\Users\\Administrator\\Desktop\\CommonTest文件夹下有一个名为buy.exe的1024Bytes的空文件。