golang如何获取linux系统内存硬件信息
时间: 2023-12-12 21:06:09 浏览: 188
可以使用golang的os包和linux系统的/sys文件系统来获取内存硬件信息。下面是一个获取内存总量和可用内存的示例代码:
```go
package main
import (
"fmt"
"io/ioutil"
"strconv"
"strings"
)
func main() {
// 读取内存信息
meminfo, err := ioutil.ReadFile("/proc/meminfo")
if err != nil {
panic(err)
}
// 解析内存信息
lines := strings.Split(string(meminfo), "\n")
var total, free int64
for _, line := range lines {
fields := strings.Fields(line)
if len(fields) < 3 {
continue
}
value, err := strconv.ParseInt(fields[1], 10, 64)
if err != nil {
continue
}
switch fields[0] {
case "MemTotal:":
total = value * 1024
case "MemFree:", "Buffers:", "Cached:":
free += value * 1024
}
}
used := total - free
fmt.Printf("Total memory: %d bytes\n", total)
fmt.Printf("Used memory: %d bytes\n", used)
fmt.Printf("Free memory: %d bytes\n", free)
}
```
该代码通过读取`/proc/meminfo`文件,解析文件中的内存信息,计算出总内存、已使用内存和可用内存,并打印出来。您可以根据自己的需求扩展该代码,以获取更多的内存硬件信息。
阅读全文