posix function move to process_posix.go

This commit is contained in:
Shirou WAKAYAMA 2014-04-24 18:28:45 +09:00
parent b12ec08970
commit 1ecf1a011b
2 changed files with 47 additions and 44 deletions

View File

@ -1,11 +1,5 @@
package gopsutil
import (
"os"
"strings"
"syscall"
)
type Process struct {
Pid int32 `json:"pid"`
Ppid int32 `json:"ppid"`
@ -86,41 +80,3 @@ func Pid_exists(pid int32) (bool, error) {
return false, err
}
// POSIX
func getTerminalMap() (map[uint64]string, error) {
ret := make(map[uint64]string)
termfiles := make([]string, 0)
d, err := os.Open("/dev")
if err != nil {
return nil, err
}
defer d.Close()
devnames, err := d.Readdirnames(-1)
for _, devname := range devnames {
if strings.HasPrefix(devname, "/dev/tty") {
termfiles = append(termfiles, "/dev/tty/"+devname)
}
}
ptsd, err := os.Open("/dev/pts")
if err != nil {
return nil, err
}
defer ptsd.Close()
ptsnames, err := ptsd.Readdirnames(-1)
for _, ptsname := range ptsnames {
termfiles = append(termfiles, "/dev/pts/"+ptsname)
}
for _, name := range termfiles {
stat := syscall.Stat_t{}
syscall.Stat(name, &stat)
rdev := stat.Rdev
ret[rdev] = strings.Replace(name, "/dev", "", -1)
}
return ret, nil
}

47
process_posix.go Normal file
View File

@ -0,0 +1,47 @@
// +build linux freebsd
package gopsutil
import (
"os"
"strings"
"syscall"
)
// POSIX
func getTerminalMap() (map[uint64]string, error) {
ret := make(map[uint64]string)
termfiles := make([]string, 0)
d, err := os.Open("/dev")
if err != nil {
return nil, err
}
defer d.Close()
devnames, err := d.Readdirnames(-1)
for _, devname := range devnames {
if strings.HasPrefix(devname, "/dev/tty") {
termfiles = append(termfiles, "/dev/tty/"+devname)
}
}
ptsd, err := os.Open("/dev/pts")
if err != nil {
return nil, err
}
defer ptsd.Close()
ptsnames, err := ptsd.Readdirnames(-1)
for _, ptsname := range ptsnames {
termfiles = append(termfiles, "/dev/pts/"+ptsname)
}
for _, name := range termfiles {
stat := syscall.Stat_t{}
syscall.Stat(name, &stat)
rdev := stat.Rdev
ret[rdev] = strings.Replace(name, "/dev", "", -1)
}
return ret, nil
}