作者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