mount.go 555 B

123456789101112131415161718192021222324252627282930
  1. package proc
  2. import (
  3. "os"
  4. "strings"
  5. )
  6. type MountInfo struct {
  7. MajorMinor string
  8. MountPoint string
  9. }
  10. func GetMountInfo(pid uint32) map[string]MountInfo {
  11. data, err := os.ReadFile(Path(pid, "mountinfo"))
  12. if err != nil {
  13. return nil
  14. }
  15. res := map[string]MountInfo{}
  16. for _, line := range strings.Split(string(data), "\n") {
  17. fields := strings.Fields(line)
  18. if len(fields) < 5 {
  19. continue
  20. }
  21. if strings.HasPrefix(fields[2], "0:") {
  22. continue
  23. }
  24. res[fields[0]] = MountInfo{MajorMinor: fields[2], MountPoint: fields[4]}
  25. }
  26. return res
  27. }