有沒有辦法讓我可以直接在內存中打開和加載文件? 我有很多遺留代碼可以打開網絡上存在的文件,然後 可以從這個文件中查找和讀取。我想避免讀取並通過網絡搜索。 因此,如果我可以加載文件在內存中,當我打開它時,我可以有效地尋找。 有什麼建議嗎? 我正在使用Linux上的C。打開和加載內存中的文件的方式
0
A
回答
2
您可以使用mmap
函數或純open
和read
將它們全部放入您用malloc
分配的緩衝區中。
但請做基準。你可能從這個「手動緩衝」中獲得很少(或根本沒有)改進。操作系統已經爲你緩存。
+0
mmap鏈接有些中斷 – bugwheels94
+0
@Ankit:謝謝,修正 – Mat
2
正如馬特所說,看看mmap函數。 (它可能是更容易的方法) http://linux.die.net/man/2/mmap
如果你喜歡的malloc,這個環節應該可以幫助您: http://www.anyexample.com/programming/c/how_to_load_file_into_memory_using_plain_ansi_c_language.xml
相關問題
- 1. 從內部存儲的下載文件夾中打開下載的文件(pdf)
- 2. 文件打開內存c#
- 3. CreateProcess打開加載文件的程序
- 4. 如何在內存中打開文件?
- 5. 從內存流中打開「文件」?
- 6. openpyxl - 打開文件時加載工作簿和保存,打開保存文件並顯示錯誤消息
- 7. 內存和文件加載c + +?
- 8. 的Eclipse:打開「打開方式」的.class文件
- 9. 從內存加載文件
- 10. sublime - 保存所有打開/加載的文件名稱?
- 11. 「打開文件」是否意味着將其完全加載到內存中?
- 12. 下載打開的文件
- 13. HTML5/JavaScript的:打開文本文件,加載到文本區域/保存textarea的內容到文本文件
- 14. 打開VS 2005解決方案文件(.sln)到內存中
- 15. Android最好的方式來打開大文件〜3-6 MB - 內存不足
- 16. 什麼是最快/最有效的方式來追加一個文件加載到內存中的文件?
- 17. 打開/保存文件下載不在IE 6中打開文件
- 18. grails emacs模式 - 「無法打開加載文件」「項目模式」
- 19. Python - OSError 24(太多打開的文件)和共享內存
- 20. 加載XML文件和加載內容
- 21. 將xml文件加載到內存中
- 22. 在mysql中打開文件和打開文件的區別
- 23. 更好的方式讓用戶附加並打開文件
- 24. 將CSV文件的內容加載到陣列而不打開文件
- 25. 無法打開加載文件:/ yasnippet
- 26. 如何打開/加載vsix文件
- 27. 打開文件並加載它
- 28. 如何在當前打開的文件中保存VSTO加載項的選項?
- 29. 打開下載的文件在瀏覽器中的pdf格式
- 30. Java在使用java7打開zipfile文件內的附加模式下打開2.2GB的大文件時出錯NIO
您是否嘗試過'的mmap(2)'? – glglgl
mmpa會返回一個指向加載文件的內存位置的指針。我的遺留代碼在文件指針上工作。然後我需要爲此更改很多代碼。 – user900563