看板 LinuxDev 關於我們 聯絡資訊
小弟目前在研究有關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