sysutil

package
v0.0.0-...-1dc08c0 Latest Latest
Warning

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

Go to latest
Published: Jun 17, 2021 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Overview

Package sysutil is a cross-platform compatibility layer on top of package syscall. It exposes APIs for common operations that require package syscall and re-exports several symbols from package syscall that are known to be safe. Using package syscall directly from other packages is forbidden.

Index

Constants

View Source
const (
	ECONNRESET   = syscall.ECONNRESET
	ECONNREFUSED = syscall.ECONNREFUSED
)

Exported syscall.Errno constants.

Variables

This section is empty.

Functions

func CreateLargeFile

func CreateLargeFile(path string, bytes int64) error

CreateLargeFile creates a large file at the given path with bytes size. On Linux, it uses the fallocate syscall to efficiently create a file of the given size. On other platforms, it naively writes the specified number of bytes, which can take a long time.

func ExitStatus

func ExitStatus(err *exec.ExitError) int

ExitStatus returns the exit status contained within an exec.ExitError.

func IsCrossDeviceLinkErrno

func IsCrossDeviceLinkErrno(errno error) bool

IsCrossDeviceLinkErrno checks whether the given error object (as extracted from an *os.LinkError) is a cross-device link/rename error.

func IsErrConnectionRefused

func IsErrConnectionRefused(err error) bool

IsErrConnectionRefused returns true if an error is a "connection refused" error.

func IsErrConnectionReset

func IsErrConnectionReset(err error) bool

IsErrConnectionReset returns true if an error is a "connection reset by peer" error.

func ProcessIdentity

func ProcessIdentity() string

ProcessIdentity returns a string describing the user and group that this process is running as.

func RefreshSignaledChan

func RefreshSignaledChan() <-chan os.Signal

RefreshSignaledChan returns a channel that will receive an os.Signal whenever the process receives a "refresh" signal (currently SIGHUP). A refresh signal indicates that the user wants to apply nondisruptive updates, like reloading certificates and flushing log files.

On Windows, the returned channel will never receive any values, as Windows does not support signals. Consider exposing a refresh trigger through other means if Windows support is important.

func StatAndLinkCount

func StatAndLinkCount(path string) (os.FileInfo, int64, error)

StatAndLinkCount wraps os.Stat, returning its result and, if the platform supports it, the link-count from the returned file info.

Types

type Errno

type Errno = syscall.Errno

Errno is syscall.Errno.

type FSInfo

type FSInfo struct {
	FreeBlocks  int64
	AvailBlocks int64
	TotalBlocks int64
	BlockSize   int64
}

FSInfo describes a filesystem. It is returned by StatFS.

func StatFS

func StatFS(path string) (*FSInfo, error)

StatFS returns an FSInfo describing the named filesystem. It is only supported on Unix-like platforms.

type Signal

type Signal = syscall.Signal

Signal is syscall.Signal.

Jump to

Keyboard shortcuts

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