package main import( "fmt" "time" //"strings" "unsafe" "github.com/hidez8891/shm" ) const SHM_NAME = "my_shm" const SHM_SIZE = 4 * 1000 * 1000 type MyData struct { ss string ii int } func main() { w, err := shm.Create(SHM_NAME, SHM_SIZE) if err != nil { fmt.Printf("fail: create shared memroy %v", err) } const sz = int( unsafe.Sizeof( MyData{} ) ) data := MyData{ss:"hello world", ii:100} var asByteSlice []byte = (*(*[sz]byte)(unsafe.Pointer(&data)))[:] n, err := w.WriteAt(asByteSlice, 0) if err != nil { fmt.Printf("fail: write shared memroy %v", err) } fmt.Printf("wn==>%d", n) /*r, err := shm.Open("aaa", 64) if err != nil { fmt.Printf("fail: open shared memroy %v", err) } buf := make([]byte, len(data)) n, err = r.ReadAt(buf, 0) if err != nil { fmt.Printf("fail: read shared memroy %v", err) } fmt.Println("rn==>%d", n) r.Close() */ time.Sleep(time.Duration(30)*time.Second) //w.Close() }