[GRASS-dev] libgis: ERROR: Unable to make mapset element
cell_misc/...
Glynn Clements
glynn at gclements.plus.com
Sat Mar 7 00:34:59 EST 2009
Markus Neteler wrote:
> Is this patch reasonable?
>
> svn diff mapset_msc.c
> Index: mapset_msc.c
> ===================================================================
> --- mapset_msc.c (revision 36196)
> +++ mapset_msc.c (working copy)
> @@ -12,6 +12,7 @@
> #include <string.h>
> #include <unistd.h>
> #include <stdlib.h>
> +#include <errno.h>
> #include <sys/types.h>
> #include <sys/stat.h>
> #include <grass/gis.h>
> @@ -56,9 +57,10 @@
> *p = 0;
> if (access(path, 0) != 0)
> G_mkdir(path);
> - if (access(path, 0) != 0)
> - G_fatal_error(_("Unable to make mapset element %s (%s)"),
> - p_element, path);
> + if (access(path, 0) != 0) {
> + G_fatal_error(_("Unable to make mapset element %s (%s): %s"),
> + p_element, path, strerror(errno));
> + }
> if (*element == 0)
> return 1;
> }
>
> Strangly, it says:
>
> r.in.gdal -o --o aqua_lst1km20090130.QC_Day.tif out=aqua_lst1km20090130.QC_Day
> WARNING: Over-riding projection check
> 100%
> ERROR: Unable to make mapset element cell_misc/aqua_lst1km20090130.QC_Day
> (/home/neteler/grassdata/patUTM32/modisLST005filt/cell_misc/aqua_lst1km20090130.QC_Day):
> No such file or directory
>
> while it should say:
>
> mkdir /home/neteler/grassdata/patUTM32/modisLST005filt/cell_misc/aqua_lst1km20090130.QC_Day
> mkdir: cannot create directory
> `/home/neteler/grassdata/patUTM32/modisLST005filt/cell_misc/aqua_lst1km20090130.QC_Day':
> Too many links
access() sets errno when it fails.
If you want the reason why mkdir() failed, you need to test the return
value from G_mkdir(), e.g.:
if (access(path, 0) != 0)
if (G_mkdir(path) != 0)
G_fatal_error(_("Unable to make mapset element %s (%s): %s"),
p_element, path, strerror(errno));
--
Glynn Clements <glynn at gclements.plus.com>
More information about the grass-dev
mailing list