github.com/demonoid81/moby@v0.0.0-20200517203328-62dd8e17c460/pkg/fileutils/fileutils_unix.go (about)

     1  // +build linux freebsd
     2  
     3  package fileutils // import "github.com/demonoid81/moby/pkg/fileutils"
     4  
     5  import (
     6  	"fmt"
     7  	"io/ioutil"
     8  	"os"
     9  
    10  	"github.com/sirupsen/logrus"
    11  )
    12  
    13  // GetTotalUsedFds Returns the number of used File Descriptors by
    14  // reading it via /proc filesystem.
    15  func GetTotalUsedFds() int {
    16  	if fds, err := ioutil.ReadDir(fmt.Sprintf("/proc/%d/fd", os.Getpid())); err != nil {
    17  		logrus.Errorf("Error opening /proc/%d/fd: %s", os.Getpid(), err)
    18  	} else {
    19  		return len(fds)
    20  	}
    21  	return -1
    22  }