Files
2024-02-19 00:25:23 -05:00

53 lines
899 B
C

/* mkdir - make a directory Author: Adri Koppes */
#include <sys/types.h>
#include <signal.h>
int error = 0;
main(argc, argv)
int argc;
char **argv;
{
if (argc < 2) {
std_err("Usage: mkdir directory...\n");
exit(1);
}
signal(SIGHUP, SIG_IGN);
signal(SIGINT, SIG_IGN);
signal(SIGQUIT, SIG_IGN);
signal(SIGTERM, SIG_IGN);
while (--argc) makedir(*++argv);
if (error) exit(1);
}
makedir(dirname)
char *dirname;
{
char dots[128], parent[128];
int sl = 0, i = 0;
while (dirname[i])
if (dirname[i++] == '/') sl = i;
strncpy(parent, dirname, sl);
parent[sl] = '\0';
strcat(parent, ".");
if (access(parent, 2)) {
stderr3("mkdir: can't access ", parent, "\n");
exit(1);
}
if (mkdir(dirname, 0777)) {
stderr3("mkdir: can't create ", dirname, "\n");
error++;
return;
}
}
stderr3(s1, s2, s3)
char *s1, *s2, *s3;
{
std_err(s1);
std_err(s2);
std_err(s3);
}