diff rvinterf/etmsync/hostmkdir.c @ 276:d332fbf5c145

etmsync: host_mkdir() function factored out of fc-fsio
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 17 Nov 2017 00:26:09 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/rvinterf/etmsync/hostmkdir.c	Fri Nov 17 00:26:09 2017 +0000
@@ -0,0 +1,36 @@
+/*
+ * host_mkdir() function has been factored out into this module.
+ */
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include "exitcodes.h"
+
+host_mkdir(pathname)
+	char *pathname;
+{
+	int rc;
+	struct stat st;
+
+	rc = stat(pathname, &st);
+	if (rc < 0) {
+		rc = mkdir(pathname, 0777);
+		if (rc < 0) {
+			perror(pathname);
+			return(ERROR_UNIX);
+		}
+		return(0);
+	} else {
+		if (S_ISDIR(st.st_mode))
+			return(0);
+		else {
+			fprintf(stderr,
+			"error: %s already exists and is not a directory\n",
+				pathname);
+			return(ERROR_UNIX);
+		}
+	}
+}