in sigar_aix.go [66:91]
func bootTime() (uint64, error) {
if system.btime != 0 {
return system.btime, nil
}
// Get boot time from /etc/utmp
file, err := os.Open("/etc/utmp")
if err != nil {
return 0, fmt.Errorf("error while opening /etc/utmp: %s", err)
}
defer file.Close()
for {
var utmp utmp
if err := binary.Read(file, binary.BigEndian, &utmp); err != nil {
break
}
if utmp.Type == C.BOOT_TIME {
system.btime = uint64(utmp.Time)
break
}
}
return system.btime, nil
}