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 | } |