view rvinterf/etmsync/hostmkdir.c @ 620:dd162a4cb9fa

CHANGES: objective performance comparison instead of blind patch
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 27 Feb 2020 01:21:58 +0000
parents d332fbf5c145
children
line wrap: on
line source

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