diff options
author | Thorsten Lockert <tholo@cvs.openbsd.org> | 1996-10-28 04:55:26 +0000 |
---|---|---|
committer | Thorsten Lockert <tholo@cvs.openbsd.org> | 1996-10-28 04:55:26 +0000 |
commit | fafff148e10ab137d6494753a47905a2262a870d (patch) | |
tree | fe9d3c3198fcc33c4af6deb6066141097ba8270a /lib/libc/stdio | |
parent | 4262c8681ff4a9a777733d890435b180b55ab038 (diff) |
remove(3) should be able to remove empty directories
Diffstat (limited to 'lib/libc/stdio')
-rw-r--r-- | lib/libc/stdio/remove.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/libc/stdio/remove.c b/lib/libc/stdio/remove.c index 189663d80e2..915149bc032 100644 --- a/lib/libc/stdio/remove.c +++ b/lib/libc/stdio/remove.c @@ -35,14 +35,21 @@ */ #if defined(LIBC_SCCS) && !defined(lint) -static char rcsid[] = "$OpenBSD: remove.c,v 1.2 1996/08/19 08:33:01 tholo Exp $"; +static char rcsid[] = "$OpenBSD: remove.c,v 1.3 1996/10/28 04:55:25 tholo Exp $"; #endif /* LIBC_SCCS and not lint */ -#include <unistd.h> #include <stdio.h> +#include <unistd.h> +#include <sys/stat.h> remove(file) const char *file; { + struct stat st; + + if (stat(file, &st) < 0) + return (-1); + if (S_ISDIR(st.st_mode)) + return (rmdir(file)); return (unlink(file)); } |