It seems that the files are not closed, but I use
if((elev_fd = G_open_cell_old (name, mapset)) < 0)
G_fatal_error( _("can't open %s"), name);
if((output_fd = G_open_cell_new(outname)) < 0)
G_fatal_error( _("can't open outname %s"), outname);
to open the files and
G_close_cell(output_fd);
G_close_cell(elev_fd);
to close the files again.
Is there anything wrong?
Andi
Glynn Clements wrote:
Andruit@gmx.de wrote:
I am writing a Grass programm which creates a raster, reads the values
of the raster map at certain points and creates a new rastermap having
the same name as the old one.I am using the function
G_open_cell_new() to overwrite the existing raster map.
and the function
G_close_cell()
It works fine.
But after about 1000 loops I get the following messsage.
WARNING: opencell opening temp null file: no temp files available
Does anyone know what it means. I have enough space left in my ./tmp
folder. And I also have write permissions on it.It probably means that files aren't getting closed, so you are
exceeding the limit on the number of open files per process (by
default 1024, check with ulimit -n).On Linux, you can check which files a process has open by looking in
the /proc/<pid>/fd directory, where <pid> is the PID of the process.If you're modifying a map "in-place", you'll need to close and re-open
the input map in order to see the changes. Opening a map for write
creates a temporary file, which is renamed over the original when
closed. If the original cell/fcell file is still open for read at that
point, it will still exist and still be open (it will show up as
"(deleted)" in /proc/<pid>/fd).
--
Ist Ihr Browser Vista-kompatibel? Jetzt die neuesten
Browser-Versionen downloaden: http://www.gmx.net/de/go/browser