[問題] 請問mmap有分配大小上限嗎 ?

看板LinuxDev作者 (bullshit !)時間13年前 (2011/12/10 20:30), 編輯推噓0(0013)
留言13則, 3人參與, 最新討論串1/1
請問一下各位板友 mmap分配空間時 有上限嗎 @@? 像是32bit系統是不是就絕對不能用超過4G(還要考慮不是全部都能用)之類的 另外請問 兩個thread共用同一個file descriptor時 要怎樣才可以讓其中一個寫入的資料 可以馬上就被另一個看到 我試過用fsync好像沒有什麼效果 本來想說他應該是共用同一個streaming buffer可能連fsync都不需要的說 但是後來發現假使其中一個先寫入 另一個馬上去讀的話 會讀到eof... 用fsync好像也不能解決 @@... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.162.51.246

12/11 09:46, , 1F
1沒經驗,2是file descriptor既然是共用的,那其中一個寫後
12/11 09:46, 1F

12/11 09:47, , 2F
file position就到eof了,那當然另一個去讀的時候就是eof
12/11 09:47, 2F

12/11 17:17, , 3F
喔喔....... 可是我是用pread和pwrite指定offset說 @@...
12/11 17:17, 3F

12/11 17:18, , 4F
在offset處寫入一塊資料之後再去offset處拿那一塊...
12/11 17:18, 4F

12/11 17:28, , 5F
如果我寫完之後 要讀的thread先sleep(1)就不會抓到eof
12/11 17:28, 5F

12/11 17:28, , 6F
但是這應該不是解決辦法...
12/11 17:28, 6F

12/11 19:01, , 7F
這樣聽起來,讀的thread還是比寫的thread還早動作,有考慮
12/11 19:01, 7F

12/11 19:02, , 8F
用pipe來處理嗎?
12/11 19:02, 8F

12/12 00:32, , 9F
1除了4G限制之外,你要要到4G連續位址空間其實也不太可能
12/12 00:32, 9F

12/12 00:36, , 10F
我上一次要用大塊mmap的時候,最後是用多塊256M的
12/12 00:36, 10F

12/12 02:36, , 11F
恩恩 感謝以上板友們的回答 !!
12/12 02:36, 11F

12/12 02:38, , 12F
至於我的第二個問題 那是其他bug造成的 謝謝回應 QQ
12/12 02:38, 12F

12/12 02:39, , 13F
簡單說就是同步機制寫錯 QQ
12/12 02:39, 13F
文章代碼(AID): #1Euy5ia6 (LinuxDev)