能否请您告诉如何将文件最大大小设置为 100 字节。如果我尝试写入超过 100 字节的数据,ntwritefile()
应该会抛出错误ERROR_NOT_ENOUGH_MEMORY
。
您能否建议我,一个将 100 字节(或固定大小)设置为文件的 widnows API?
在我们的产品中,ntwritefile() 失败并出现错误 ERROR_NOT_ENOUGH_MEMORY。我试图了解,在什么情况下,我们会得到那个错误。
使用SetFilePointer
,然后SetEndOfFile
。别忘了CloseHandle
追SetEndOfFile
!
您可以创建大小为 100 字符的缓冲区,并在完成后将缓冲区写入文件。
#include <stdio.h>
#include <memory.h>
int main(int argc, char* argv[])
{
char buffer[100];
//assign values
memset(buffer, 'A', 100);
buffer[5]='@';
FILE * pFile;
pFile = fopen ( "buffer.100" , "wb" );
fwrite (buffer, 1, sizeof(buffer) , pFile );
fclose (pFile);
return 0;
}
你想创建一个 100 字节的文件吗?或者您是否要将文件的大小限制为 100 字节,这意味着如果文件超过 100 字节,对文件的任何进一步写入都将不起作用?
如果它是您之后的第一个,那么您可以使用CreateFile
并将WriteFile
缓冲区大小限制为 100 字节。
如果是第二个……那我觉得不可能……
从架构上讲,您最好的方法如下:
很抱歉,您不需要为此提供缓冲区。只需创建一个大于文件大小的文件的内存映射对象,系统就会自动将文件扩展为该大小。
但是对于 100 字节,您只需创建一个 100 字节的虚拟 char 数组并将其写入文件。
见, http: //msdn.microsoft.com/en-us/library/windows/desktop/aa366542 (v=vs.85).aspx