簡體   English   中英

在Go中讀取不斷增長的mmap文件

[英]Read a growing mmap file in Go

我想在golang中讀取mmap文件。

另一個過程是將內容寫入其中,因此讀取時其大小會不斷增加。

我在用

syscall.Mmap(fd int, offset int64, length int, prot int, flags int)

這將返回一個字節數組。

我需要繼續執行syscall.Mmap來讀取更新的mmap嗎? 還有更好的方法嗎?

syscall.Mmap()只是C mmap(2)的薄包裝,因此其行為相同。 如果您使用了syscall.MAP_SHARED標志(其他進程也使用過),則可以通過其他進程來更新您返回的內存區域。 除了記住完成后調用syscall.Munmap()之外,您無需執行其他任何操作。 根據您正在執行的操作,它可能是defer的好人選。

但是,如果有人在寫共享空間並將其擴展到您映射的區域之外,那么您將不得不再次映射它。 它不會自動調整自身大小。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM