The Mmap()
syscall in the x/sys/unix
package in Golang returns a []byte
type, while the underlying syscall actually returns a pointer. How does it do this?
More specifically, in this package by a Golang developer, the VirtualAlloc
function simply returns a pointer. How can this be converted to a byte slice, the same way as it's done in the Unix package?
As of Go 1.17, you can now use unsafe.Slice:
mySlice := unsafe.Slice(ptr, numElements)