[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