#include #include #include "getdtablecount.h" #ifdef __linux__ int getdtablecount(void) { struct dirent *dp; DIR *dir; int n; /* XXX: return something different? */ if (!(dir = opendir("/proc/self/fd"))) return 0; n = 0; while ((dp = readdir(dir))) if (dp->d_name[0] >= '0' && dp->d_name[0] <= '9') n++; closedir(dir); return n; } #else #error getdtablecount(2) not supported #endif