作者askacis (ASKA)
看板LinuxDev
標題[問題] mmap的大小限制?
時間Fri Apr 24 21:41:19 2009
小弟目前在研究有關mmap的相關機制,
發生了一個很奇怪的現象:
即當我存取實體記憶體 fd = open( "/dev/mem", O_RDWR );
然後再呼叫mmap
p=mmap(0,size,PROT_WRITE,MAP_SHARED,fd,0);
之後再將我程式中一個很大的array搬進去p所指到的記憶體空間中
當我的size變數不大的時候,這樣都是成功的;但是當size>100000
的時候,程式變會hang在那邊了
但是如果我是採用下面的方式去取得fd
fd = open( "/home/aska/1.jpg", O_RDWR );
再做mmap,這樣的作法不管我size傳進去的大小都可以map成功
不曉得是/dev/mem這邊有什麼存取的限制嗎?
我的系統是fedora 6 ,感謝各位了~~^__^
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.244.105.113
推 richliu:overwrite 掉系統的記憶體了吧. 04/25 01:05
推 vincente:/dev/mem > 1M (0x100000) 以上不能被讀取。 04/27 18:02
→ vincente:permission deny 04/27 18:03