請問您可以告訴如何將文件最大大小設置爲100字節。如果我嘗試寫入更多數據超過100字節ntwritefile()
應該拋出錯誤ERROR_NOT_ENOUGH_MEMORY
。如何在C++中將文件大小設置爲100字節?
能否請你建議我,一個WIDNOWS API設置100個字節(或一個固定的大小)文件?
在我們的產品,ntwritefile()失敗,錯誤ERROR_NOT_ENOUGH_MEMORY。我想了解,在哪些場景中,我們會得到這個錯誤。
請問您可以告訴如何將文件最大大小設置爲100字節。如果我嘗試寫入更多數據超過100字節ntwritefile()
應該拋出錯誤ERROR_NOT_ENOUGH_MEMORY
。如何在C++中將文件大小設置爲100字節?
能否請你建議我,一個WIDNOWS API設置100個字節(或一個固定的大小)文件?
在我們的產品,ntwritefile()失敗,錯誤ERROR_NOT_ENOUGH_MEMORY。我想了解,在哪些場景中,我們會得到這個錯誤。
你想創建一個文件,是100個字節?或者是否要將文件大小限制爲100個字節,這意味着如果文件超過100個字節,文件上的其他寫入操作將不起作用?
如果它是第一個,那麼您可以使用CreateFile
和WriteFile
並將緩衝區大小限制爲100字節。
如果它的第二個..然後我不認爲它可能...
感謝您的回答蛇!我對第二個有興趣 – siva
那麼這個文件是由你的應用程序管理還是你需要在全球範圍內的限制。我的意思是,即使在使用第三方文本編輯器寫入文件的情況下,您是否也希望存在限制? –
您可以創建一個大小爲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;
}
我知道這是簡單的C而不是C++,但它完成了工作。 –
他不想創建一個100字節的文件,他想確保他不能寫入超過100個字節的文件。 –
siva詢問有關將文件設置爲100字節(或固定大小)的問題,上面的代碼可以做到這一點,而不僅僅是在Windows中。 –
你的最好的辦法,建築來說,如下:
對不起,你不需要緩衝區。 只需創建一個大於 文件大小的文件的內存映射對象,系統就會自動將該文件擴展爲該大小。
但只是100字節您只需創建一個100個字節的空字符數組和 其寫入文件。
看到, http://msdn.microsoft.com/en-us/library/windows/desktop/aa366542(v=vs.85).aspx
使用SetFilePointer
,然後SetEndOfFile
。在SetEndOfFile
之後別忘了CloseHandle
!
據我所知,你不能讓系統來限制文件的大小。 –
爲什麼Windows會提供這樣的事情?配置文件的大小,當然,但單個文件的大小? – Arafangion
有沒有理由不能在你的代碼中自己檢查它? –