I\'m trying to access a c struct in cgo, but go this
could not determine kind of name for C.utmpx
utmpx is a c struct
here
#define's are problematic with CGo. I could get it to work with Go 1.8.1 on Linux amd64 like this:
package main
import "os"
/*
#define _GNU_SOURCE 1
#include <stdio.h>
#include <stdlib.h>
#include <utmpx.h>
#include <fcntl.h>
#include <unistd.h>
char *path_utmpx = UTMPX_FILE;
typedef struct utmpx utmpx;
*/
import "C"
type record C.utmpx
func main() {
path := C.GoString(C.path_utmpx)
fd, err := os.Open(path)
if err != nil {
panic("bad")
}
fd.Close()
}
type record C.utmpx
compile.A few pointers:
Good luck!