2015-12-23 4 views
0

В Unix, Go может сделать это:Go для Windows, чтобы передать флаг на карте памяти системного вызова

// func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) 
syscall.Mmap(., ., ., ., syscall.MAP_SHARED|syscall.XXX) 

В Windows, вы можете использовать это:

https://github.com/golang/go/blob/master/src/syscall/zsyscall_windows.go#L970-L981

// func CreateFileMapping(fhandle Handle, sa *SecurityAttributes, prot uint32, maxSizeHigh uint32, maxSizeLow uint32, name *uint16) (handle Handle, err error) 
syscall.CreateFileMapping(., ., syscall.PAGE_READONLY, ., ., nil) 

Но дон Нет никаких аргументов флага для CreateFileMapping для Windows.

Кто-нибудь знает, как передавать флаги в CreateFileMapping Функция, подобная syscall.MAP_SHARED|syscall.XXX?

ответ

0

Похоже, вы можете получить целочисленные значения для флагов защиты от the Windows reference for that syscall. Кажется, что нет однозначного сопоставления с флагами Unix-y, например. вместо того, чтобы иметь флаг для общих карт, похоже, вы получаете общую карту по умолчанию при передаче вызова имени файла.