这是对文件进行mmap
并写入单个字节的尝试:
package main
import (
"fmt"
"os"
"syscall"
)
func main() {
file, _ := os.Open("/tmp/data")
mmap, _ := syscall.Mmap(int(file.Fd()), 0, 100, syscall.PROT_READ|syscall.PROT_WRITE, syscall.MAP_SHARED)
fmt.Printf("cap is %d", cap(mmap))
mmap[0] = 0
syscall.Munmap(mmap)
}
尽管长度设置为100,但
mmap
的容量始终为0。系统调用出了什么问题? 最佳答案
始终检查错误!os.Open
打开一个文件仅供读取,但是mmap
调用要求将文件映射为读/写,因此出现权限被拒绝的错误,结果映射的区域大小为0。
关于go - 此mmap系统调用有什么问题?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16608754/