Newer
Older
package main
import (
"bufio"
"bytes"
"errors"
"os"
"strconv"
)
var btimePfx = []byte("btime ")
func getBootTime() (int64, error) {
f, err := os.Open("/proc/stat")
if err != nil {
return 0, err
}
defer f.Close()
scanner := bufio.NewScanner(f)
for scanner.Scan() {
line := scanner.Bytes()
if bytes.HasPrefix(line, btimePfx) {
return strconv.ParseInt(string(line[len(btimePfx):]), 10, 64)
}
}
return 0, errors.New("btime not found in /proc/stat")
}