GRASS GIS 7 Programmer's Manual  7.5.svn(2017)-r71933
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
segment/close.c
Go to the documentation of this file.
1 /**
2  * \file lib/segment/close.c
3  *
4  * \brief Segment closing routine.
5  *
6  * This program is free software under the GNU General Public License
7  * (>=v2). Read the file COPYING that comes with GRASS for details.
8  *
9  * \author GRASS GIS Development Team
10  *
11  * \date 2012
12  */
13 
14 #include <unistd.h>
15 #include <fcntl.h>
16 #include <grass/gis.h>
17 #include <grass/glocale.h>
18 #include "local_proto.h"
19 
20 /**
21  * \fn int Segment_close (SEGMENT *SEG)
22  *
23  * \brief Free memory allocated to segment, delete temp file.
24  *
25  * Releases the allocated memory associated with the segment file
26  * <b>seg</b> and deletes the temporary file.
27  *
28  * \param[in,out] SEG segment
29  * \return 1 if successful
30  * \return -1 if SEGMENT is not available (not open)
31  */
32 
34 {
35  if (SEG->open != 1)
36  return -1;
37 
38  Segment_release(SEG);
39  close(SEG->fd);
40  unlink(SEG->fname);
41 
42  SEG->fd = -1;
43  SEG->fname = NULL;
44 
45  return 1;
46 }
int Segment_close(SEGMENT *SEG)
Free memory allocated to segment, delete temp file.
Definition: segment/close.c:33
int fd
Definition: segment.h:44
int open
Definition: segment.h:21
#define NULL
Definition: ccmath.h:32
char * fname
Definition: segment.h:43
int Segment_release(SEGMENT *SEG)
Free memory allocated to segment.
close(fd)