1234567891011121314151617181920212223242526 |
- // +build darwin freebsd openbsd netbsd
- package sysutil
- import (
- "bytes"
- "encoding/binary"
- "syscall"
- "time"
- )
- func init() {
- // get boot time
- res, err := syscall.Sysctl("kern.boottime")
- if err != nil {
- btime = time.Now()
- return
- }
- // decode
- var t timeval
- if err = binary.Read(bytes.NewBuffer([]byte(res)), binary.LittleEndian, &t); err != nil {
- btime = time.Now()
- return
- }
- btime = time.Unix(int64(t.Sec), int64(t.Usec))
- }
|