GRU - Generic Reusable Utilities
Loading...
Searching...
No Matches
gru_ioutils.h
Go to the documentation of this file.
1/*
2 Copyright 2016 Otavio Rodolfo Piske
3
4 Licensed under the Apache License, Version 2.0 (the "License");
5 you may not use this file except in compliance with the License.
6 You may obtain a copy of the License at
7
8 http://www.apache.org/licenses/LICENSE-2.0
9
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
15 */
16#ifndef GRU_IOUTILS_H
17#define GRU_IOUTILS_H
18
19#include <errno.h>
20#include <fcntl.h>
21#include <stdbool.h>
22#include <stdio.h>
23
24#if !defined(_WIN32) && !defined(_WIN64)
25#include <unistd.h>
26#else
27#include <io.h>
28#endif
29#include <stdarg.h>
30#include <string.h>
31
32#include <sys/stat.h>
33#include <sys/types.h>
34
35#include "common/gru_portable.h"
36#include "common/gru_status.h"
37#include "gru_path.h"
38
44#ifdef __cplusplus
45extern "C" {
46#endif
47
57gru_export bool
58 gru_io_remap(const char *dir, const char *name, FILE *fd, gru_status_t *status);
59
70gru_export FILE *
71 gru_io_open_file(const char *dir, const char *name, gru_status_t *status);
72
82gru_export FILE *gru_io_open_file_path(const char *path, gru_status_t *status);
83
93gru_export FILE *
94 gru_io_open_file_read(const char *dir, const char *name, gru_status_t *status);
95
104gru_export FILE *gru_io_open_file_read_path(const char *path, gru_status_t *status);
105
115gru_export FILE *
116 gru_io_open_unique_file(const char *dir, const char *name, gru_status_t *status);
117
127gru_export size_t gru_io_read_text_into(char **dest, FILE *file, gru_status_t *status);
128
129#ifdef __cplusplus
130}
131#endif
132
133#endif /* GRU_IOUTILS_H */
gru_export size_t gru_io_read_text_into(char **dest, FILE *file, gru_status_t *status)
Reads the file pointed by file into the destination buffer.
Definition: gru_ioutils.c:117
gru_export bool gru_io_remap(const char *dir, const char *name, FILE *fd, gru_status_t *status)
IO utilities.
Definition: gru_ioutils.c:19
gru_export FILE * gru_io_open_file_read(const char *dir, const char *name, gru_status_t *status)
Tries to safely open a file (ie.: creating directories and stuff)
Definition: gru_ioutils.c:80
gru_export FILE * gru_io_open_unique_file(const char *dir, const char *name, gru_status_t *status)
Tries to safely open a file (ie.: creating directories and stuff)
Definition: gru_ioutils.c:102
gru_export FILE * gru_io_open_file_read_path(const char *path, gru_status_t *status)
Tries to safely open a file (ie.: creating directories and stuff)
Definition: gru_ioutils.c:98
gru_export FILE * gru_io_open_file_path(const char *path, gru_status_t *status)
Tries to safely open a file (ie.: creating directories and stuff).
Definition: gru_ioutils.c:58
gru_export FILE * gru_io_open_file(const char *dir, const char *name, gru_status_t *status)
Tries to safely open a file (ie.: creating directories and stuff).
Definition: gru_ioutils.c:62
#define gru_export
Definition: gru_portable.h:19
Status type.
Definition: gru_status.h:47