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 |
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) } }