[GRASS-dev] [GRASS GIS] #2278: G__tempfile() lacks perror support
GRASS GIS
trac at osgeo.org
Sun May 4 01:31:53 PDT 2014
#2278: G__tempfile() lacks perror support
-------------------------+--------------------------------------------------
Reporter: neteler | Owner: grass-dev@…
Type: defect | Status: new
Priority: normal | Milestone: 7.0.0
Component: LibGIS | Version: svn-releasebranch70
Keywords: r.hants | Platform: Unspecified
Cpu: Unspecified |
-------------------------+--------------------------------------------------
(The problem arises from r.hants Addon use, reported on grass-user)
Using r.hants (derived from r.series) on almost 600 raster
maps generates an "ERROR: no temp files available" on
Linux 64bit. The input maps have been registered with
r.external:
{{{
D2/3: G_file_name(): path = /home/user/grassdata/latlong/cloro/GDAL
D2/3: G_file_name(): path =
/home/user/grassdata/latlong/cloro/.tmp/localhost.localdomain/12772.6
D2/3: G_file_name(): path =
/home/user/grassdata/latlong/cloro/.tmp/localhost.localdomain/12772.7
D2/3: G_file_name(): path = /home/user/grassdata/latlong/cloro/GDAL
D2/3: G_file_name(): path =
/home/user/grassdata/latlong/cloro/.tmp/localhost.localdomain/12772.8
D2/3: G_file_name(): path =
/home/user/grassdata/latlong/cloro/.tmp/localhost.localdomain/12772.9
ERROR: no temp files available
GRASS 7.1.svn (latlong_wgs84):~ >
}}}
For a better error message, perror() should be used:
in lib/gis/tempfile.c
{{{
char *G__tempfile(int pid)
{
[...]
do {
int uniq = G_counter_next(&unique);
sprintf(name, "%d.%d", pid, uniq);
G_file_name(path, element, name, G_mapset());
}
while (access(path, F_OK) == 0);
[...]
}}}
We need to explain the error with perror() as done in
in lib/gis/mapset.c
{{{
if (access(mapset, F_OK) != 0) {
perror("access");
G_fatal_error(_("MAPSET <%s> not available"), mapset);
}}}
Anyone able to modify the while() loop in lib/gis/tempfile.c
accordingly?
--
Ticket URL: <http://trac.osgeo.org/grass/ticket/2278>
GRASS GIS <http://grass.osgeo.org>
More information about the grass-dev
mailing list