github.com/sijibomii/docker@v0.0.0-20231230191044-5cf6ca554647/pkg/fileutils/fileutils_unix.go (about)

     1  // +build linux freebsd
     2  
     3  package 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  }