ErrLimitReached means that the read limit is reached.
var ErrLimitReached = errors.New("the read limit is reached")
func ConsistentRead(filename string, attempts int) ([]byte, error)
ConsistentRead repeatedly reads a file until it gets the same content twice. This is useful when reading files in /proc that are larger than page size and kernel may modify them between individual read() syscalls. It returns InconsistentReadError when it cannot get a consistent read in given nr. of attempts. Caller should retry, kernel is probably under heavy mount/unmount load.
func IsInconsistentReadError(err error) bool
func ReadAtMost(r io.Reader, limit int64) ([]byte, error)
ReadAtMost reads up to `limit` bytes from `r`, and reports an error when `limit` bytes are read.
InconsistentReadError is returned from ConsistentRead when it cannot get a consistent read in given nr. of attempts. Caller should retry, kernel is probably under heavy mount/unmount load.
type InconsistentReadError struct {
// contains filtered or unexported fields
}
func (i InconsistentReadError) Error() string