github.com/ttys3/engine@v17.12.1-ce-rc2+incompatible/pkg/fileutils/fileutils_darwin.go (about) 1 package fileutils 2 3 import ( 4 "os" 5 "os/exec" 6 "strconv" 7 "strings" 8 ) 9 10 // GetTotalUsedFds returns the number of used File Descriptors by 11 // executing `lsof -p PID` 12 func GetTotalUsedFds() int { 13 pid := os.Getpid() 14 15 cmd := exec.Command("lsof", "-p", strconv.Itoa(pid)) 16 17 output, err := cmd.CombinedOutput() 18 if err != nil { 19 return -1 20 } 21 22 outputStr := strings.TrimSpace(string(output)) 23 24 fds := strings.Split(outputStr, "\n") 25 26 return len(fds) - 1 27 }