作者EntHeEnd (bullshit !)
看板LinuxDev
标题[问题] 请问mmap有分配大小上限吗 ?
时间Sun Dec 11 04:30:33 2011
请问一下各位板友
mmap分配空间时 有上限吗 @@?
像是32bit系统是不是就绝对不能用超过4G(还要考虑不是全部都能用)之类的
另外请问
两个thread共用同一个file descriptor时
要怎样才可以让其中一个写入的资料
可以马上就被另一个看到
我试过用fsync好像没有什麽效果
本来想说他应该是共用同一个streaming buffer可能连fsync都不需要的说
但是後来发现假使其中一个先写入
另一个马上去读的话 会读到eof...
用fsync好像也不能解决 @@...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 1.162.51.246
1F:→ kaeluno1:1没经验,2是file descriptor既然是共用的,那其中一个写後 12/11 09:46
2F:→ kaeluno1:file position就到eof了,那当然另一个去读的时候就是eof 12/11 09:47
3F:→ EntHeEnd:喔喔....... 可是我是用pread和pwrite指定offset说 @@... 12/11 17:17
4F:→ EntHeEnd:在offset处写入一块资料之後再去offset处拿那一块... 12/11 17:18
5F:→ EntHeEnd:如果我写完之後 要读的thread先sleep(1)就不会抓到eof 12/11 17:28
6F:→ EntHeEnd:但是这应该不是解决办法... 12/11 17:28
7F:→ kaeluno1:这样听起来,读的thread还是比写的thread还早动作,有考虑 12/11 19:01
8F:→ kaeluno1:用pipe来处理吗? 12/11 19:02
9F:→ buganini:1除了4G限制之外,你要要到4G连续位址空间其实也不太可能 12/12 00:32
10F:→ buganini:我上一次要用大块mmap的时候,最後是用多块256M的 12/12 00:36
11F:→ EntHeEnd:恩恩 感谢以上板友们的回答 !! 12/12 02:36
12F:→ EntHeEnd:至於我的第二个问题 那是其他bug造成的 谢谢回应 QQ 12/12 02:38
13F:→ EntHeEnd:简单说就是同步机制写错 QQ 12/12 02:39