]> Pileus Git - grits/blob - src/data/grits-data.c
1126825be09342eb54d138ff330d35be5e5f8611
[grits] / src / data / grits-data.c
1 /*
2  * Copyright (C) 2009-2010 Andy Spencer <andy753421@gmail.com>
3  *
4  * This program is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation, either version 3 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
16  */
17
18 /**
19  * SECTION:gis-data
20  * @short_description: Miscellaneous utilities for data access
21  * @include: glib/gstdio.h
22  *
23  * Various support routines for data access,
24  * these are mostly related to disk caching.
25  */
26
27 #include <config.h>
28 #include <stdio.h>
29 #include <glib.h>
30
31 #include "gis-data.h"
32
33 /**
34  * fopen_p:
35  * @path: the path to the file to be opened.
36  * @mode: mode to open the file, see <function>fopen</function> for details
37  *
38  * Open a file, creating parent directories if needed
39  *
40  * Returns: the opened file descriptor
41  */
42 FILE *fopen_p(const gchar *path, const gchar *mode)
43 {
44         gchar *parent = g_path_get_dirname(path);
45         if (!g_file_test(parent, G_FILE_TEST_EXISTS))
46                 g_mkdir_with_parents(parent, 0755);
47         g_free(parent);
48         return fopen(path, mode);
49 }