您好,关于遍历系统进程,golang提供了一些标准库可以使用。下面我分别给您介绍如何在Windows和Linux系统中遍历进程:
在Windows系统中,我们可以使用psutil
和win32process
两个标准库来实现遍历进程的功能。以下是示例代码:
package main
import (
"fmt"
"github.com/shirou/gopsutil/process"
)
func main() {
pids, _ := process.Pids()
for _, pid := range pids {
proc, _ := process.NewProcess(pid)
name, _ := proc.Name()
fmt.Printf("pid: %d, name: %s\n", pid, name)
}
}
在Linux系统中,我们可以使用os/exec
和syscall
两个标准库来实现遍历进程的功能。以下是示例代码:
package main
import (
"fmt"
"os/exec"
"strconv"
"strings"
)
func main() {
output, _ := exec.Command("ps", "-e").Output()
lines := strings.Split(string(output), "\n")
for _, line := range lines[1:] {
fields := strings.Fields(line)
if len(fields) < 4 {
continue
}
pid, _ := strconv.Atoi(fields[0])
name := fields[3]
fmt.Printf("pid: %d, name: %s\n", pid, name)
}
}
以上是在Windows和Linux系统中遍历进程的示例代码,希望对您有所帮助。