Thread: very elaborate mkdir error checking in pg_dump

very elaborate mkdir error checking in pg_dump

From
Peter Eisentraut
Date:
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
withthis name "                         "exists already\n", dir);   }
 
   /*    * Now we create the directory. Note that for some race condition we could    * also run into the situation
thatthe 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?



Re: very elaborate mkdir error checking in pg_dump

From
Tom Lane
Date:
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