/dev/fd exists on all operating systems I can test (Linux, FreeBSD, macOS),
whereas /proc/self/fd only appears to exist on Linux.
Signed-off-by: Alex Richardson <Alexander.Richardson@cl.cam.ac.uk>
struct dirent *ent;
int count = 0;
- dir = opendir("/proc/self/fd");
- assert(dir && "opening /proc/self/fd failed.");
+ /*
+ * Using /dev/fd instead of /proc/self/fd should allow this code to
+ * work on non-Linux operating systems.
+ */
+ dir = opendir("/dev/fd");
+ assert(dir && "opening /dev/fd failed.");
errno = 0;
while ((ent = readdir(dir))) {
continue;
count++;
}
- assert(errno == 0 && "reading /proc/self/fd failed.");
+ assert(errno == 0 && "reading /dev/fd failed.");
closedir(dir);