snippet memfd func newMemFd(data []byte) (*io.File, error) { fd, err := unix.MemfdCreate("memfd", 0) if err != nil { return nil, err } if err := unix.Ftruncate(fd, int64(len(data))); err != nil { return nil, err } var mem []byte mem, err = unix.Mmap(fd, 0, len(data), unix.PROT_READ|unix.PROT_WRITE, unix.MAP_SHARED) if err != nil { return nil, err } copy(mem, data) if err := unix.Munmap(mem); err != nil { return nil, err } return os.NewFile(uintptr(fd), fmt.Sprintf("/proc/self/fd/%d", fd)), nil }