GRASS GIS 7 Programmer's Manual  7.5.svn(2018)-r72115
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
tempfile.c File Reference

GIS Library - Temporary file functions. More...

#include <string.h>
#include <unistd.h>
#include <sys/stat.h>
#include <stdlib.h>
#include <grass/gis.h>
#include "gis_local_proto.h"
Include dependency graph for tempfile.c:

Go to the source code of this file.


void G_init_tempfile (void)
 Initialize environment for creating tempfiles. More...
char * G_tempfile (void)
 Returns a temporary file name. More...
char * G_tempfile_pid (int pid)
 Create tempfile from process id. More...
void G_temp_element (char *element)
 Populates element with a path string. More...
void G__temp_element (char *element, int tmp)
 Populates element with a path string (internal use only!) More...

Detailed Description

GIS Library - Temporary file functions.

(C) 2001-2015 by the GRASS Development Team

This program is free software under the GNU General Public License (>=v2). Read the file COPYING that comes with GRASS for details.

Original author CERL

Definition in file tempfile.c.

Function Documentation

void G__temp_element ( char *  element,
int  tmp 

Populates element with a path string (internal use only!)

[out]elementelement name
tmpTRUE to use G_make_mapset_element_tmp() instead of G_make_mapset_element()

Definition at line 113 of file tempfile.c.

References G__machine_name(), G_debug(), G_make_mapset_element(), G_make_mapset_element_tmp(), and NULL.

Referenced by G_temp_element(), and Vect__get_path().

void G_init_tempfile ( void  )

Initialize environment for creating tempfiles.

Definition at line 29 of file tempfile.c.

References G_init_counter(), G_initialize_done(), and G_is_initialized().

Referenced by G_init_all(), and G_tempfile_pid().

void G_temp_element ( char *  element)

Populates element with a path string.

[out]elementelement name

Definition at line 102 of file tempfile.c.

References FALSE, and G__temp_element().

Referenced by D_open_driver(), G_tempfile_pid(), and main().

char* G_tempfile ( void  )

Returns a temporary file name.

This routine returns a pointer to a string containing a unique temporary file name that can be used as a temporary file within the module. Successive calls to G_tempfile() will generate new names. Only the file name is generated. The file itself is not created. To create the file, the module must use standard UNIX functions which create and open files, e.g., creat() or fopen().

Successive calls will generate different names the names are of the form pid.n where pid is the programs process id number and n is a unique identifier.

Note: It is recommended to unlink() (remove) the temp file on exit/error. Only if GRASS is left with 'exit', the GIS mapset management will clean up the temp directory (ETC/clean_temp).

pointer to a character string containing the name. The name is copied to allocated memory and may be released by the unix free() routine.

Definition at line 62 of file tempfile.c.

References G_tempfile_pid().

Referenced by dig_spidx_free_areas(), dig_spidx_free_isles(), dig_spidx_free_lines(), dig_spidx_free_nodes(), dig_spidx_init(), Rast3d_open_cell_new(), Rast__open_null_write(), Rast_put_cell_title(), Vect__delete(), and Vect_break_polygons_file().

char* G_tempfile_pid ( int  pid)

Create tempfile from process id.

See G_tempfile().

pointer to string path

Definition at line 75 of file tempfile.c.

References G_counter_next(), G_debug(), G_file_name(), G_init_tempfile(), G_mapset(), G_store(), G_temp_element(), GNAME_MAX, GPATH_MAX, and name.

Referenced by G_tempfile().