package main import ( "fmt" "log" "golang.org/x/sys/unix" ) func main() { pid := 1 // init cpuset var cpuset unix.CPUSet err := unix.SchedGetaffinity(pid, &cpuset) if err != nil { log.Fatalf("Error getting CPU affinity: %v\n", err) } processorCount := 0 for i := 0; i < cpuset.Count(); i++ { if cpuset.IsSet(i) { processorCount++ } } fmt.Printf("CPUSet size: %d, Number of processor allowed to pid %d is %d\n", cpuset.Count(), pid, processorCount) }