gpt4 book ai didi

go - 在 Go 中读取不断增长的 mmap 文件

转载 作者:IT王子 更新时间:2023-10-29 02:37:14 44 4
gpt4 key购买 nike

我想在 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() 之外,您无需执行任何其他操作。它可能是延迟的一个很好的候选者,这取决于你在做什么。

但是,如果有人正在写入共享空间并将其扩展到您映射的区域之外,那么您将不得不重新映射它。它不会自动调整自己的大小。

关于go - 在 Go 中读取不断增长的 mmap 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51526913/

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com