|
|
1.1 root 1: /* rmdir.c
2: Remove a directory on a system which doesn't have the rmdir system
3: call. This is only called by uupick, which is not setuid, so we
4: don't have to worry about the problems of invoking the setuid
5: /bin/rmdir program. */
6:
7: #include "uucp.h"
8:
9: #include "sysdep.h"
10:
11: #include <errno.h>
12:
13: int
14: rmdir (zdir)
15: const char *zdir;
16: {
17: const char *azargs[3];
18: int aidescs[3];
19: pid_t ipid;
20:
21: azargs[0] = RMDIR_PROGRAM;
22: azargs[1] = zdir;
23: azargs[2] = NULL;
24: aidescs[0] = SPAWN_NULL;
25: aidescs[1] = SPAWN_NULL;
26: aidescs[2] = SPAWN_NULL;
27:
28: ipid = ixsspawn (azargs, aidescs, TRUE, FALSE, (const char *) NULL,
29: TRUE, TRUE, (const char *) NULL,
30: (const char *) NULL, (const char *) NULL);
31:
32: if (ipid < 0)
33: return -1;
34:
35: if (ixswait ((unsigned long) ipid, (const char *) NULL) != 0)
36: {
37: /* Make up an errno value. */
38: errno = EBUSY;
39: return -1;
40: }
41:
42: return 0;
43: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.