io

package
v0.0.0-...-0849a56 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 23, 2024 License: Apache-2.0 Imports: 5 Imported by: 42

README

IO

This package provides interfaces for working with file IO. Currently it provides functionality for consistently reading a file.

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrLimitReached = errors.New("the read limit is reached")

ErrLimitReached means that the read limit is reached.

Functions

func ConsistentRead

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

func IsInconsistentReadError(err error) bool

func ReadAtMost

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.

Types

type InconsistentReadError

type InconsistentReadError struct {
	// contains filtered or unexported fields
}

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.

func (InconsistentReadError) Error

func (i InconsistentReadError) Error() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL