sysconf
for Go, without using cgo or external binaries (e.g. getconf).
Supported operating systems: Linux, Darwin, DragonflyBSD, FreeBSD, NetBSD, OpenBSD. Support for Solaris is planned but not yet implemented.
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, Darwin, FreeBSD, NetBSD, OpenBSD |
SC_AVPHYS_PAGES |
Linux, OpenBSD |
SC_NPROCESSORS_CONF |
Linux, Darwin, FreeBSD, NetBSD, OpenBSD |
SC_NPROCESSORS_ONLN |
Linux, Darwin, FreeBSD, NetBSD, OpenBSD |
SC_UIO_MAXIOV |
Linux |
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)
}
}