view ffstools/cal2text/mkdir.c @ 924:d452188587b4

rvinterf: begin change to backslash escape output format Right now throughout the rvinterf suite, any time we emit output that is expected to be ASCII, but may contain non-printable garbage, we use 'cat -v' form of garbage character representation. Unfortunately, this transformation is lossy (can't be reversed 100% reliably in the user's wetware), hence we would like to migrate to C-style backslash escapes, including doubling of any already-present backslashes - this escape mechanism is lossless. Begin this change by converting the output of RV and L1 traces in rvinterf and rvtdump.
author Mychaela Falconia <falcon@freecalypso.org>
date Tue, 23 May 2023 03:10:50 +0000
parents d41edd329670
children
line wrap: on
line source

#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

mkdir_existok(pathname)
	char *pathname;
{
	int rc;
	struct stat st;

	rc = stat(pathname, &st);
	if (rc < 0) {
		rc = mkdir(pathname, 0777);
		if (rc < 0) {
			perror(pathname);
			exit(1);
		}
		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);
			exit(1);
		}
	}
}