亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
樓主: ehuangmy
打印 上一主題 下一主題

如何將一段內存映射為一個文件,然后得到FILE *指針,訪問? [復制鏈接]

論壇徽章:
0
11 [報告]
發(fā)表于 2006-11-07 15:51 |只看該作者

  1.        This function is GNU extensions.
復制代碼

論壇徽章:
0
12 [報告]
發(fā)表于 2006-11-07 16:35 |只看該作者

文件的HANDLE轉化為FILE*

以前有人問過:"文件的HANDLE如何轉化為FILE*"
當時留意了一下

要先include <io.h>
然后
FILE*   xxxx(HANDLE   hFile)   
{   
int   nHandle   =   _open_osfhandle((intptr_t)hFile,   _O_TEXT);   
if   (nHandle   !=   -1)   
return   _fdopen(nHandle,   szMode);   
else   
return   NULL;   
}

論壇徽章:
0
13 [報告]
發(fā)表于 2006-11-07 21:13 |只看該作者
呃,樓主能否反過來考慮一下。先把這部分內存的內容寫入一個文件,然后 mmap,用新得到的內存指針訪問,同時用文件系統(tǒng)也可訪問到

論壇徽章:
0
14 [報告]
發(fā)表于 2006-11-08 00:10 |只看該作者
原帖由 langue 于 2006-11-7 21:13 發(fā)表
呃,樓主能否反過來考慮一下。先把這部分內存的內容寫入一個文件,然后 mmap,用新得到的內存指針訪問,同時用文件系統(tǒng)也可訪問到

我的程序要求必須不能寫入文件系統(tǒng),必須在內存獲取FILE*指針

所以這個方法不可行

論壇徽章:
0
15 [報告]
發(fā)表于 2006-11-08 00:15 |只看該作者
我做測試的系統(tǒng)前面已經(jīng)有人安裝了 fmemopen庫,所以有
fmemopen是GNU libc 的,
在其他系統(tǒng)上無法編譯,

所以想知道,有沒有其他的方法實現(xiàn)這一點

論壇徽章:
0
16 [報告]
發(fā)表于 2006-11-08 13:01 |只看該作者
另外,能否把 glibc 里這個 fmemopen() 實現(xiàn)加入你的代碼樹,并且用條件編譯,檢測到是 GNU libc 并且啟用了 fmemopen() 函數(shù),就隱去函數(shù)的實現(xiàn),否則編譯進二進制代碼

論壇徽章:
0
17 [報告]
發(fā)表于 2006-11-08 14:50 |只看該作者
原帖由 langue 于 2006-11-8 13:01 發(fā)表
另外,能否把 glibc 里這個 fmemopen() 實現(xiàn)加入你的代碼樹,并且用條件編譯,檢測到是 GNU libc 并且啟用了 fmemopen() 函數(shù),就隱去函數(shù)的實現(xiàn),否則編譯進二進制代碼



你的應用要是以 GNU 發(fā)布的就行,,否則有 "道德"和"法律" 上的問題

論壇徽章:
0
18 [報告]
發(fā)表于 2006-11-08 15:06 |只看該作者
原帖由 ehuangmy 于 2006-11-8 00:15 發(fā)表
我做測試的系統(tǒng)前面已經(jīng)有人安裝了 fmemopen庫,所以有
fmemopen是GNU libc 的,
在其他系統(tǒng)上無法編譯,

所以想知道,有沒有其他的方法實現(xiàn)這一點

tmpfile

求職 : 數(shù)據(jù)庫管理員
論壇徽章:
0
19 [報告]
發(fā)表于 2006-11-08 16:43 |只看該作者
曾經(jīng)想過將這個函數(shù)抓出來,
可Windows,和Linux的差異讓我沒有成功
樓主可自己實現(xiàn)一個
下面代碼是從libc的實現(xiàn)中抓出來的,訣竅就在這里吧

  1. FILE *
  2. fmemopen (void *buf, size_t len, const char *mode)
  3. {
  4.   cookie_io_functions_t iof;
  5. ..
  6. ..
  7.   iof.read = fmemopen_read;
  8.   iof.write = fmemopen_write;
  9.   iof.seek  = fmemopen_seek;
  10.   iof.close = fmemopen_close;
  11.   return _IO_fopencookie (c, mode, iof);
復制代碼

論壇徽章:
0
20 [報告]
發(fā)表于 2006-11-08 17:06 |只看該作者
呵呵,做嵌入式的應該知道scull,它就是用一段內存模擬成一個字符設備,可以對它像操作普通字符設備一樣write,read等
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP