View difference between Paste ID: CEuRRrgG and uvazZLbY
SHOW: | | - or go back to the newest paste.
1
package main
2
3
import (
4
	"fmt"
5
	"os"
6-
	"syscall"
6+
7-
	"unsafe"
7+
8
	)
9
10
func main() {
11
	n := 1000
12
	t := 32 * n
13-
	t := int(unsafe.Sizeof(0)) * n
13+
14
	map_file, _ := os.Create("/tmp/test.dat")
15
	_, _ = map_file.Seek(int64(t - 1), 0)
16
	map_file.Write([]byte(" "))
17
	defer map_file.Close()
18
19-
	/*mmap, _ := syscall.Mmap(map_file.Fd(), 0, int(t), syscall.PROT_READ | syscall.PROT_WRITE, syscall.MAP_SHARED)*/
19+
	mmap, _ := mmap.Map(map_file, mmap.RDWR, 0)
20-
	mmap, _ := mmap.Map(map_file, syscall.PROT_NONE, mmap.RDWR)
20+
21-
	map_array := (*[1000]int)(unsafe.Pointer(&mmap))
21+
	for i := 0; i < n; i++ {
22
		mmap[i] = byte(i*i)
23-
	for i:=0; i < n; i++ {
23+
24-
		map_array[i] = i*i
24+
25
	fmt.Println(mmap)
26
}