Ich bin neu in Go und versuche zu lernen, wie man C von Go anruft. Ich schrieb dieses Programm, um einen benannten Semaphor zu öffnen, den Wert zu erhalten und es auf den Bildschirm zu drucken. Wenn ich es go build semvalue.go
laufen bekomme ich den Fehler: ./semvalue.go:16:14: unexpected type: ...
unerwarteter Typ: ... mit cgo in Go
Was bedeutet das? Was mache ich falsch?
package main
import "fmt"
// #cgo LDFLAGS: -pthread
// #include <stdlib.h>
// #include <fcntl.h>
// #include <sys/stat.h>
// #include <semaphore.h>
import "C"
func main() {
name := C.CString("/fram")
defer C.free(name)
fram_sem := C.sem_open(name, C.O_CREAT, C.mode_t(0644), C.uint(1))
var val int
ret := C.sem_getvalue(fram_sem, val)
fmt.Println(val)
C.sem_close(fram_sem)
}
Vielen Dank.