code: func (k *KeyLogger) read() (*InputEvent, error) {
  	buffer := make([]byte, eventsize)
  	n, err := k.fd.Read(buffer)
  	if err != nil {
  		return nil, err
  	}
  	// no input, dont send error
  	if n <= 0 {
  		return nil, nil
  	}
  	return k.eventFromBuffer(buffer)
  }
docs: // read from file description and parse binary into go struct