
Mmap-go
By: a guest on
Feb 7th, 2012 | syntax:
Go | size: 0.58 KB | hits: 112 | expires: Never
package main
import (
"fmt"
"os"
"syscall"
"unsafe"
"github.com/edsrzf/mmap-go"
)
func main() {
n := 1000
t := int(unsafe.Sizeof(0)) * n
map_file, _ := os.Create("/tmp/test.dat")
_, _ = map_file.Seek(int64(t - 1), 0)
map_file.Write([]byte(" "))
/*mmap, _ := syscall.Mmap(map_file.Fd(), 0, int(t), syscall.PROT_READ | syscall.PROT_WRITE, syscall.MAP_SHARED)*/
mmap, _ := mmap.Map(map_file, syscall.PROT_NONE, mmap.RDWR)
map_array := (*[1000]int)(unsafe.Pointer(&mmap))
for i:=0; i < n; i++ {
map_array[i] = i*i
}
fmt.Println(*map_array)
}