GRASS GIS 7 Programmer's Manual
7.8.4(2020)-exported
is.c
Go to the documentation of this file.
1
2
/*!
3
* \file lib/gis/is.c
4
*
5
* \brief GIS Library - Tests for file existence.
6
*
7
* (C) 2001-2014 by the GRASS Development Team
8
*
9
* This program is free software under the GNU General Public License
10
* (>=v2). Read the file COPYING that comes with GRASS for details.
11
*
12
* \author GRASS GIS Development Team
13
*
14
* \date 2001-2014
15
*/
16
17
#include <stdio.h>
18
#include <string.h>
19
#include <unistd.h>
20
#include <grass/gis.h>
21
22
23
static
int
test_path_file(
const
char
*,
const
char
*);
24
25
26
static
int
test_path_file(
const
char
*
path
,
const
char
*
file
)
27
{
28
int
ret;
29
char
*buf;
30
31
buf = (
char
*)G_malloc(strlen(
path
) + strlen(
file
) + 2);
32
sprintf(buf,
"%s/%s"
,
path
,
file
);
33
34
ret = access(buf, F_OK);
35
G_free
(buf);
36
37
if
(ret == 0)
38
return
1;
39
40
return
0;
41
}
42
43
44
/**
45
46
* \brief Test if specified directory is GISBASE.
47
*
48
* \param[in] path Path to directory
49
* \return 1 The directory is GISBASE
50
* \return 0 The directory is not GISBASE
51
*/
52
53
int
G_is_gisbase
(
const
char
*
path
)
54
{
55
return
test_path_file(
path
,
"etc/element_list"
);
56
}
57
58
59
/**
60
* \brief Test if specified directory is location.
61
*
62
* \param[in] path Path to directory
63
* \return 1 The directory is location
64
* \return 0 The directory is not location
65
*/
66
67
int
G_is_location
(
const
char
*
path
)
68
{
69
return
test_path_file(
path
,
"PERMANENT/DEFAULT_WIND"
);
70
}
71
72
73
/**
74
* \brief Test if specified directory is mapset.
75
*
76
* \param[in] path Path to directory
77
* \return 1 The directory is mapset
78
* \return 0 The directory is not mapset
79
*/
80
81
int
G_is_mapset
(
const
char
*
path
)
82
{
83
return
test_path_file(
path
,
"WIND"
);
84
}
G_is_location
int G_is_location(const char *path)
Test if specified directory is location.
Definition:
is.c:67
path
Definition:
path.h:16
G_is_gisbase
int G_is_gisbase(const char *path)
Test if specified directory is GISBASE.
Definition:
is.c:53
file
#define file
G_free
void G_free(void *buf)
Free allocated memory.
Definition:
alloc.c:149
G_is_mapset
int G_is_mapset(const char *path)
Test if specified directory is mapset.
Definition:
is.c:81
gis
is.c
Generated on Mon Oct 5 2020 08:56:03 for GRASS GIS 7 Programmer's Manual by
1.8.18