1 /* BSD compatible remove directory function for System V
3 Copyright (C) 1988, 1990, 1999, 2003, 2004, 2005, 2006 Free
4 Software Foundation, Inc.
6 This program is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 3 of the License, or
9 (at your option) any later version.
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>. */
21 #include <sys/types.h>
25 /* rmdir adapted from GNU tar. */
27 /* Remove directory DIR.
28 Return 0 if successful, -1 if not. */
31 rmdir (char const *dir)
37 if (stat (dir, &statbuf) != 0)
38 return -1; /* errno already set */
40 if (!S_ISDIR (statbuf.st_mode))
49 case -1: /* cannot fork */
50 return -1; /* errno already set */
52 case 0: /* child process */
53 execl ("/bin/rmdir", "rmdir", dir, (char *) 0);
56 default: /* parent process */
58 /* Wait for kid to finish. */
60 while (wait (&status) != cpid)
66 /* /bin/rmdir failed. */