作者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
1F:推 richliu:overwrite 掉系统的记忆体了吧. 04/25 01:05
2F:推 vincente:/dev/mem > 1M (0x100000) 以上不能被读取。 04/27 18:02
3F:→ vincente:permission deny 04/27 18:03