ADVERTISEMENT
ADVERTISEMENT

How to get the system information using syscall in Golang?

Here, we will learn to get the system information using syscall in Golang.
Submitted by IncludeHelp, on November 13, 2021

In the Go programming language, to get the system information using syscall – we use the Sysinfo() function of the syscall package. The Sysinfo() function is used to get the system information. It returns (assigns) the following information in the Sysinfo_t structure and Sysinfo_t contains the following fields:

type Sysinfo_t struct {
    Uptime    int64
    Loads     [3]uint64
    Totalram  uint64
    Freeram   uint64
    Sharedram uint64
    Bufferram uint64
    Totalswap uint64
    Freeswap  uint64
    Procs     uint16
    Pad       uint16
    Pad_cgo_0 [4]byte
    Totalhigh uint64
    Freehigh  uint64
    Unit      uint32
    X_f       [0]byte
    Pad_cgo_1 [4]byte
}

Reference: Sysinfo_t

Syntax:

func Sysinfo(info *Sysinfo_t) (err error)

Consider the below example demonstrating how to get the system information using syscall in Golang?

package main

import (
	"fmt"
	"syscall"
)

func main() {
	// Creating an object of Sysinfo_t
	sysinfo := syscall.Sysinfo_t{}

	// Calling the function Sysinfo()
	// to get the system information
	err := syscall.Sysinfo(&sysinfo)

	if err != nil {
		fmt.Println("Error:", err)
	}

	// Printing the structure value
	fmt.Println("sysinfo:", sysinfo)

	// Printing the fields values
	fmt.Println("Uptime:", sysinfo.Uptime)
	fmt.Println("Loads:", sysinfo.Loads)
	fmt.Println("Totalram:", sysinfo.Totalram)
	fmt.Println("Freeram:", sysinfo.Freeram)
	fmt.Println("Sharedram:", sysinfo.Sharedram)
	fmt.Println("Bufferram:", sysinfo.Bufferram)
	fmt.Println("Totalswap:", sysinfo.Totalswap)
	fmt.Println("Freeswap:", sysinfo.Freeswap)
	fmt.Println("Procs:", sysinfo.Procs)
	fmt.Println("Pad:", sysinfo.Pad)
	fmt.Println("Pad_cgo_0:", sysinfo.Pad_cgo_0)
	fmt.Println("Totalhigh:", sysinfo.Totalhigh)
	fmt.Println("Freehigh:", sysinfo.Freehigh)
	fmt.Println("Unit:", sysinfo.Unit)
	fmt.Println("X_f:", sysinfo.X_f)
	fmt.Println("Pad_cgo_1:", sysinfo.Pad_cgo_1)
}

Output

sysinfo: {8 [0 0 0] 104857600 74522624 0 0 0 0 15 0 [0 0 0 0] 0 0 1 [] [0 0 0 0]}
Uptime: 8
Loads: [0 0 0]
Totalram: 104857600
Freeram: 74522624
Sharedram: 0
Bufferram: 0
Totalswap: 0
Freeswap: 0
Procs: 15
Pad: 0
Pad_cgo_0: [0 0 0 0]
Totalhigh: 0
Freehigh: 0
Unit: 1
X_f: []
Pad_cgo_1: [0 0 0 0]

Golang syscall Package Programs »



ADVERTISEMENT




ADVERTISEMENT



Comments and Discussions!

ADVERTISEMENT

ADVERTISEMENT

ADVERTISEMENT

ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT

Languages: » C » C++ » C++ STL » Java » Data Structure » C#.Net » Android » Kotlin » SQL
Web Technologies: » PHP » Python » JavaScript » CSS » Ajax » Node.js » Web programming/HTML
Solved programs: » C » C++ » DS » Java » C#
Aptitude que. & ans.: » C » C++ » Java » DBMS
Interview que. & ans.: » C » Embedded C » Java » SEO » HR
CS Subjects: » CS Basics » O.S. » Networks » DBMS » Embedded Systems » Cloud Computing
» Machine learning » CS Organizations » Linux » DOS
More: » Articles » Puzzles » News/Updates

© https://www.includehelp.com some rights reserved.