1 /* BSD compatible remove directory function for System V
3 Copyright (C) 1988, 1990, 1999, 2003, 2004, 2005 Free Software
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 2, or (at your option)
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, write to the Free Software Foundation,
18 Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
24 #include <sys/types.h>
28 #include "stat-macros.h"
30 /* rmdir adapted from GNU tar. */
32 /* Remove directory DIR.
33 Return 0 if successful, -1 if not. */
36 rmdir (char const *dir)
42 if (stat (dir, &statbuf) != 0)
43 return -1; /* errno already set */
45 if (!S_ISDIR (statbuf.st_mode))
54 case -1: /* cannot fork */
55 return -1; /* errno already set */
57 case 0: /* child process */
58 execl ("/bin/rmdir", "rmdir", dir, (char *) 0);
61 default: /* parent process */
63 /* Wait for kid to finish. */
65 while (wait (&status) != cpid)
71 /* /bin/rmdir failed. */