sigar/go_bindings/gotoc/sysInfo.go

56 lines
832 B
Go
Raw Normal View History

2016-01-04 18:23:11 +08:00
package gotoc
import (
"unsafe"
)
/*
#include "../../../../../Include/sigar.h"
#cgo CFLAGS: -I../../../../../Include
#cgo LDFLAGS: C:/Users/iuriel/workspace/vmeerkat/leap-project/Include/sigar-amd64-winnt.dll
*/
import "C"
func SysInfo() (C.sigar_sys_info_t, []C.sigar_who_t) {
var sigar *C.sigar_t=GetSigarHandle()
var sysInfo C.sigar_sys_info_t
var wholist C.sigar_who_list_t
C.sigar_sys_info_get(sigar, &sysInfo)
C.sigar_who_list_get(sigar,&wholist)
var length int=int(wholist.number)
var goWho =make([]C.sigar_who_t, length)
cwho:=GetGoSlice(length, unsafe.Pointer(wholist.data))
goWho = *(*[]C.sigar_who_t)(unsafe.Pointer(&cwho))
C.sigar_who_list_destroy(sigar , &wholist)
return sysInfo, goWho
}