podman/vendor/github.com/tklauser/go-sysconf
Matt Heon d9c388e2fe Change to using gopsutil for cross-OS process ops
Instead of trying to write out own code to do basic process
operations (e.g. checking if a PID is still running in a multi-OS
friendly manner), use shirou/gopsutil, a multi-platform library
that should abstract all the complexity away. Unlike our previous
approach on Windows, this one should actually work.

Signed-off-by: Matt Heon <mheon@redhat.com>
2023-10-31 10:14:06 -04:00
..
.cirrus.yml Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
.gitignore Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
LICENSE Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
README.md Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
sysconf.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
sysconf_bsd.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
sysconf_darwin.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
sysconf_dragonfly.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
sysconf_freebsd.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
sysconf_generic.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
sysconf_linux.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
sysconf_netbsd.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
sysconf_openbsd.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
sysconf_posix.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
sysconf_solaris.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
sysconf_unsupported.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
zsysconf_defs_darwin.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
zsysconf_defs_dragonfly.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
zsysconf_defs_freebsd.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
zsysconf_defs_linux.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
zsysconf_defs_netbsd.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
zsysconf_defs_openbsd.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
zsysconf_defs_solaris.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
zsysconf_values_freebsd_386.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
zsysconf_values_freebsd_amd64.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
zsysconf_values_freebsd_arm.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
zsysconf_values_freebsd_arm64.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
zsysconf_values_freebsd_riscv64.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
zsysconf_values_linux_386.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
zsysconf_values_linux_amd64.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
zsysconf_values_linux_arm.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
zsysconf_values_linux_arm64.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
zsysconf_values_linux_loong64.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
zsysconf_values_linux_mips.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
zsysconf_values_linux_mips64.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
zsysconf_values_linux_mips64le.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
zsysconf_values_linux_mipsle.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
zsysconf_values_linux_ppc64.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
zsysconf_values_linux_ppc64le.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
zsysconf_values_linux_riscv64.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
zsysconf_values_linux_s390x.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
zsysconf_values_netbsd_386.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
zsysconf_values_netbsd_amd64.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
zsysconf_values_netbsd_arm.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
zsysconf_values_netbsd_arm64.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00

README.md

go-sysconf

Go Reference GitHub Action Status

sysconf for Go, without using cgo or external binaries (e.g. getconf).

Supported operating systems: Linux, macOS, DragonflyBSD, FreeBSD, NetBSD, OpenBSD, Solaris/Illumos.

All POSIX.1 and POSIX.2 variables are supported, see References for a complete list.

Additionally, the following non-standard variables are supported on some operating systems:

Variable Supported on
SC_PHYS_PAGES Linux, macOS, FreeBSD, NetBSD, OpenBSD, Solaris/Illumos
SC_AVPHYS_PAGES Linux, OpenBSD, Solaris/Illumos
SC_NPROCESSORS_CONF Linux, macOS, FreeBSD, NetBSD, OpenBSD, Solaris/Illumos
SC_NPROCESSORS_ONLN Linux, macOS, FreeBSD, NetBSD, OpenBSD, Solaris/Illumos
SC_UIO_MAXIOV Linux

Usage

package main

import (
	"fmt"

	"github.com/tklauser/go-sysconf"
)

func main() {
	// get clock ticks, this will return the same as C.sysconf(C._SC_CLK_TCK)
	clktck, err := sysconf.Sysconf(sysconf.SC_CLK_TCK)
	if err == nil {
		fmt.Printf("SC_CLK_TCK: %v\n", clktck)
	}
}

References