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 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. */
22 #include <sys/types.h>
26 #include "stat-macros.h"
28 /* rmdir adapted from GNU tar. */
30 /* Remove directory DIR.
31 Return 0 if successful, -1 if not. */
34 rmdir (char const *dir)
40 if (stat (dir, &statbuf) != 0)
41 return -1; /* errno already set */
43 if (!S_ISDIR (statbuf.st_mode))
52 case -1: /* cannot fork */
53 return -1; /* errno already set */
55 case 0: /* child process */
56 execl ("/bin/rmdir", "rmdir", dir, (char *) 0);
59 default: /* parent process */
61 /* Wait for kid to finish. */
63 while (wait (&status) != cpid)
69 /* /bin/rmdir failed. */