2017-11-11 6 views
1

Ich habe eine C-Funktion, die einen Sockaddr-Zeiger verwendet.Aufruf der C-Funktion, die sockaddr benötigt

Ich habe ein syscall.RawSockaddrInet4-Objekt erstellt, aber ich kann nicht herausfinden, wie die Adresse des Objekts auf einen C.sockaddr-Zeiger zu übertragen.

Ich habe versucht dies, (* syscall.RawSockaddr) (unsafe.Pointer (& sa)), aber ich erhalte eine Fehlermeldung:

kann nicht verwendet werden (* syscall.RawSockaddr) (unsafe.Pointer (& sa)) (Typ * syscall.RawSockaddr) als Typ * C.struct_sockaddr in Argument zu _Cfunc_lib_connect

Alle Ideen würden sehr geschätzt werden!

int lib_connect (int Socke, enum lib_sock_type Typ, const struct srv sockaddr *, int srv_sz );

+3

[Github Suche ist dein Freund] (https://github.com/search?q=language%3Ago+struct_sockaddr&type=Code&utf8= % E2% 9C% 93) – mkopriva

+1

Aus den Code Snippets, die im Link sichtbar sind, sieht es so aus, als ob Sie in der Lage wären, es so zu machen '(* C.struct_sockaddr) (unsafe.Pointer (& sa))', obwohl ich nicht Ich habe es selbst getestet, also bin ich mir nicht 100% sicher. – mkopriva

Antwort

1

Dank mkopriva!

(* C.struct_sockaddr) (unsafe.Pointer (& sa))

Verwandte Themen