Minix1.5/commands/mkdir.c

Compare this file to the similar file:
Show the results in this format:

/* 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);
}