Index: fusl/src/dirent/opendir.c |
diff --git a/fusl/src/dirent/opendir.c b/fusl/src/dirent/opendir.c |
new file mode 100644 |
index 0000000000000000000000000000000000000000..5cb84e303feea1746c64e3b255bd7fe76389e49b |
--- /dev/null |
+++ b/fusl/src/dirent/opendir.c |
@@ -0,0 +1,21 @@ |
+#define _GNU_SOURCE |
+#include <dirent.h> |
+#include <fcntl.h> |
+#include <stdlib.h> |
+#include "__dirent.h" |
+#include "syscall.h" |
+ |
+DIR *opendir(const char *name) |
+{ |
+ int fd; |
+ DIR *dir; |
+ |
+ if ((fd = open(name, O_RDONLY|O_DIRECTORY|O_CLOEXEC)) < 0) |
+ return 0; |
+ if (!(dir = calloc(1, sizeof *dir))) { |
+ __syscall(SYS_close, fd); |
+ return 0; |
+ } |
+ dir->fd = fd; |
+ return dir; |
+} |