[問題] mmap的大小限制?

看板LinuxDev作者 (ASKA)時間16年前 (2009/04/24 21:41), 編輯推噓2(201)
留言3則, 2人參與, 最新討論串1/1
小弟目前在研究有關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

04/25 01:05, , 1F
overwrite 掉系統的記憶體了吧.
04/25 01:05, 1F

04/27 18:02, , 2F
/dev/mem > 1M (0x100000) 以上不能被讀取。
04/27 18:02, 2F

04/27 18:03, , 3F
permission deny
04/27 18:03, 3F
文章代碼(AID): #19yS606V (LinuxDev)
文章代碼(AID): #19yS606V (LinuxDev)