Hi Serguei,
a Go string or *string do not correspond to a C char *
You must pass the address of the first byte of a sufficiently large buffer:
func GetGroupFD(group int, pciDevice *string) (int, error) {
const N = 256
var buffer [N]byte
device, _, errno := syscall.Syscall(
syscall.SYS_IOCTL,
uintptr(group),
uintptr(unsafe.Pointer(&ioctlId)),
&buffer[0],
)
/* if ioctl() is successful, find '\0' in buffer[] and copy the relevant
portion in *pciDevice */
}
On Thursday, August 23, 2018 at 2:55:29 PM UTC+2, [email protected] wrote:
>
> I changed code a little bit to be able to examine variables:
>
>
>
> func GetGroupFD(group int, pciDevice *string) (int, error) {
>
> ioctlId := 0x3b6a
>
> var buffer uintptr
>
> buffer = uintptr(unsafe.Pointer(pciDevice))
>
>
--
You received this message because you are subscribed to the Google Groups
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.