code: func sysReadFile(file string) ([]byte, error) {
  	f, err := os.Open(file)
  	if err != nil {
  		return nil, err
  	}
  	defer f.Close()
  
  	// On some machines, hwmon drivers are broken and return EAGAIN.  This causes
  	// Go's ioutil.ReadFile implementation to poll forever.
  	//
  	// Since we either want to read data or bail immediately, do the simplest
  	// possible read using syscall directly.
  	b := make([]byte, 128)
  	n, err := syscall.Read(int(f.Fd()), b)
  	if err != nil {
  		return nil, err
  	}
  
  	return b[:n], nil
  }
docs: // sysReadFile is a simplified ioutil.ReadFile that invokes syscall.Read directly.