GRASS GIS 8 Programmer's Manual 8.2.1(2023)-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
23static int test_path_file(const char *, const char *);
24
25
26static 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
53int 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
67int 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
81int G_is_mapset(const char *path)
82{
83 return test_path_file(path, "WIND");
84}
void G_free(void *buf)
Free allocated memory.
Definition: alloc.c:149
int G_is_mapset(const char *path)
Test if specified directory is mapset.
Definition: is.c:81
int G_is_gisbase(const char *path)
Test if specified directory is GISBASE.
Definition: is.c:53
int G_is_location(const char *path)
Test if specified directory is location.
Definition: is.c:67
#define file
Definition: path.h:16