"""When called as a script, print a comma-separated list of the open file descriptors on stdout. Usage: fd_stats.py: check all file descriptors fd_status.py fd1 fd2 ...: check only specified file descriptors """ import errno import os import stat import sys if __name__ == "__main__": fds = [] if len(sys.argv) == 1: try: _MAXFD = os.sysconf("SC_OPEN_MAX") except: _MAXFD = 256 test_fds = range(0, _MAXFD) else: test_fds = map(int, sys.argv[1:]) for fd in test_fds: try: st = os.fstat(fd) except OSError as e: if e.errno == errno.EBADF: continue raise # Ignore Solaris door files if not stat.S_ISDOOR(st.st_mode): fds.append(fd) print(','.join(map(str, fds)))