]>
diplodocus.org Git - nmh/blob - sbr/makedir.c
3 * makedir.c -- make a directory
9 * Modified to try recursive create.
14 #include <sys/param.h>
27 context_save(); /* save the context file */
30 if (getuid () == geteuid ()) {
31 c
= strncpy(path
, dir
, sizeof(path
));
33 while ((c
= strchr((c
+ 1), '/')) != NULL
) {
35 if (access(path
, X_OK
)) {
37 advise (dir
, "unable to create directory");
40 if (mkdir(path
, 0775)) {
41 advise (dir
, "unable to create directory");
48 if (mkdir (dir
, 0755) == -1) {
49 advise (dir
, "unable to create directory");
53 switch (pid
= vfork()) {
55 advise ("fork", "unable to");
62 execl ("/bin/mkdir", "mkdir", dir
, NULL
);
63 execl ("/usr/bin/mkdir", "mkdir", dir
, NULL
);
64 fprintf (stderr
, "unable to exec ");
69 if (pidXwait(pid
, "mkdir"))
75 if (!(cp
= context_find ("folder-protect")))
77 chmod (dir
, atooi (cp
));