diff options
author | Jakob Kaivo <jkk@ung.org> | 2020-08-13 12:31:45 -0400 |
---|---|---|
committer | Jakob Kaivo <jkk@ung.org> | 2020-08-13 12:31:45 -0400 |
commit | 7d284a409e9a07f03635ea77652d8d665f30ccda (patch) | |
tree | a2db155a1d67e7b1782c51d60dd7996527a4a226 /src/dirent/closedir.c | |
parent | f829bca41f50a90a9f894b799b85386a7ef97deb (diff) |
basic implementation of POSIX (not XOPEN) dirent functions
Diffstat (limited to 'src/dirent/closedir.c')
-rw-r--r-- | src/dirent/closedir.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/src/dirent/closedir.c b/src/dirent/closedir.c index c12abfff..24cf31dd 100644 --- a/src/dirent/closedir.c +++ b/src/dirent/closedir.c @@ -1,14 +1,19 @@ #include <dirent.h> -#include "nonstd/assert.h" -#include "../_syscall.h" +#include "sys/types.h" +#include "unistd.h" +#include "stdlib.h" +#include "../_assert.h" +#include "_dirent.h" int closedir(DIR *dirp) { - /* + int ret = -1; ASSERT_NONNULL(dirp); - SYSCALL(closedir, int, -1, dirp, 0, 0, 0, 0, 0); - */ - return -1; + ret = close(dirp->fd); + if (ret != -1) { + free(dirp); + } + return ret; } /* POSIX(1) |