summaryrefslogtreecommitdiff
path: root/lib/libc/dirent/closedir.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libc/dirent/closedir.c')
-rw-r--r--lib/libc/dirent/closedir.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/lib/libc/dirent/closedir.c b/lib/libc/dirent/closedir.c
new file mode 100644
index 00000000..8a4ef3a7
--- /dev/null
+++ b/lib/libc/dirent/closedir.c
@@ -0,0 +1,17 @@
+#include <errno.h>
+#include <__dirent.h>
+#include <unistd.h>
+#include <dirent.h>
+#include <stdlib.h>
+
+int closedir(DIR *dirp)
+{
+ if (dirp->fildes >= 0) {
+ errno = EBADF;
+ return -1;
+ }
+
+ close(dirp->fildes);
+ free(dirp);
+ return 0;
+}