func bootTime()

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
}