[問題] 如何用fopen()讀取記憶體裡的資料

作者: eye5002003 (下一夜)   2016-01-28 22:20:06
最簡單的方法是將記憶體的資料拿出來建立一個真的檔案
再讓fopen()之類的IO函式去讀取
但是面對大量資料時就還是多浪費了時間
還要檢查暫時生出來的檔案名稱是不是跟既存的檔案名重疊
有沒有比較好的做法來處理這種問題?
舉個例子說明我為何有這需求
例如我解開壓縮檔之後解開的檔案當然是在記憶體上面,如果是讀壓縮檔裡的bmp檔倒
是沒甚麼困擾,因為本來就是直接對記憶體動手,讀檔頭、挖自己需要的部分。
但是png檔則需要透過官方的API來讀,而它的介面只允許我輸入檔案名稱,不能傳入
該檔的記憶體位址,所以我想知道有沒有甚麼好方法,不要多費工去硬碟上建立真的檔案
作者: Clangpp (Clang++)   2016-01-28 22:23:00
不考慮用IPC嗎??
作者: stupid0319 (徵女友)   2016-01-28 22:25:00
記憶體?直接指標存取不就好了
作者: eye5002003 (下一夜)   2016-01-28 22:39:00
IPC能讓記憶體資料被當成檔案讀取?我再查查看,thanks
作者: LPH66 (-6.2598534e+18f)   2016-01-29 04:51:00
透過官方 API? 你是用什麼方法讀取 png?如果是直接用 libpng 那從記憶體讀資料非常簡單如果是一些其他的 framework 我相信一定有方法指定從記憶體讀取資料出來...
作者: badwork (我是大笨蛋)   2016-01-30 09:11:00
作者: soso7885 (YOHO)   2016-01-30 10:15:00
直接sharemem
作者: johnjohnlin (嗯?)   2016-01-30 13:15:00
原來有fmemopen這種東西

Links booklink

Contact Us: admin [ a t ] ucptt.com