[英]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.