very elaborate mkdir error checking in pg_dump

Started by Peter Eisentrautover 13 years ago2 messageshackers
Jump to latest
#1Peter Eisentraut
peter_e@gmx.net

Is there a real point to all this code in pg_backup_directory.c?

static void
createDirectory(const char *dir)
{
struct stat st;

/* the directory must not exist yet. */
if (stat(dir, &st) == 0)
{
if (S_ISDIR(st.st_mode))
exit_horribly(modulename,
"cannot create directory %s, it exists already\n",
dir);
else
exit_horribly(modulename,
"cannot create directory %s, a file with this name "
"exists already\n", dir);
}

/*
* Now we create the directory. Note that for some race condition we could
* also run into the situation that the directory has been created just
* between our two calls.
*/
if (mkdir(dir, 0700) < 0)
exit_horribly(modulename, "could not create directory %s: %s\n",
dir, strerror(errno));
}

Couldn't we just call mkdir() and report the strerrno(errno) to begin
with, like everyone else does?

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Peter Eisentraut (#1)
Re: very elaborate mkdir error checking in pg_dump

Peter Eisentraut <peter_e@gmx.net> writes:

Couldn't we just call mkdir() and report the strerrno(errno) to begin
with, like everyone else does?

+1. It'll provide pretty much the same information anyway.

regards, tom lane