annotate sbr/remdir.c @ 0:bce86c4163a3

Initial revision
author kono
date Mon, 18 Apr 2005 23:46:02 +0900
parents
children 441a2190cfae
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1 /* remdir.c - remove a directory */
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2 #ifndef lint
bce86c4163a3 Initial revision
kono
parents:
diff changeset
3 static char ident[] = "@(#)$Id$";
bce86c4163a3 Initial revision
kono
parents:
diff changeset
4 #endif /* lint */
bce86c4163a3 Initial revision
kono
parents:
diff changeset
5
bce86c4163a3 Initial revision
kono
parents:
diff changeset
6 #include "../h/mh.h"
bce86c4163a3 Initial revision
kono
parents:
diff changeset
7 #include <stdio.h>
bce86c4163a3 Initial revision
kono
parents:
diff changeset
8 #ifdef UNISTD
bce86c4163a3 Initial revision
kono
parents:
diff changeset
9 #include <unistd.h>
bce86c4163a3 Initial revision
kono
parents:
diff changeset
10 #endif
bce86c4163a3 Initial revision
kono
parents:
diff changeset
11
bce86c4163a3 Initial revision
kono
parents:
diff changeset
12
bce86c4163a3 Initial revision
kono
parents:
diff changeset
13 remdir (dir)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
14 char *dir;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
15 {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
16 #if !defined (BSD42) && !defined (SYS5DIR)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
17 int pid;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
18 #endif /* not BSD42 and not SYS5DIR */
bce86c4163a3 Initial revision
kono
parents:
diff changeset
19
bce86c4163a3 Initial revision
kono
parents:
diff changeset
20 m_update ();
bce86c4163a3 Initial revision
kono
parents:
diff changeset
21 (void) fflush (stdout);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
22
bce86c4163a3 Initial revision
kono
parents:
diff changeset
23 #if !defined (BSD42) && !defined (SYS5DIR)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
24 switch (pid = vfork ()) {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
25 case NOTOK:
bce86c4163a3 Initial revision
kono
parents:
diff changeset
26 advise ("fork", "unable to");
bce86c4163a3 Initial revision
kono
parents:
diff changeset
27 return 0;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
28
bce86c4163a3 Initial revision
kono
parents:
diff changeset
29 case OK:
bce86c4163a3 Initial revision
kono
parents:
diff changeset
30 execl ("/bin/rmdir", "rmdir", dir, NULLCP);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
31 execl ("/usr/bin/rmdir", "rmdir", dir, NULLCP);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
32 fprintf (stderr, "unable to exec ");
bce86c4163a3 Initial revision
kono
parents:
diff changeset
33 perror ("rmdir");
bce86c4163a3 Initial revision
kono
parents:
diff changeset
34 _exit (-1);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
35
bce86c4163a3 Initial revision
kono
parents:
diff changeset
36 default:
bce86c4163a3 Initial revision
kono
parents:
diff changeset
37 if (pidXwait (pid, "rmdir"))
bce86c4163a3 Initial revision
kono
parents:
diff changeset
38 return 0;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
39 break;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
40 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
41 #else /* BSD42 or SYS5DIR */
bce86c4163a3 Initial revision
kono
parents:
diff changeset
42 if (rmdir (dir) == NOTOK) {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
43 admonish (dir, "unable to remove directory");
bce86c4163a3 Initial revision
kono
parents:
diff changeset
44 return 0;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
45 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
46 #endif /* BSD42 or SYS5DIR */
bce86c4163a3 Initial revision
kono
parents:
diff changeset
47
bce86c4163a3 Initial revision
kono
parents:
diff changeset
48 return 1;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
49 }