GRU - Generic Reusable Utilities
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
45 extern "C" {
46 #endif
47 
57 gru_export bool
58  gru_io_remap(const char *dir, const char *name, FILE *fd, gru_status_t *status);
59 
70 gru_export FILE *
71  gru_io_open_file(const char *dir, const char *name, gru_status_t *status);
72 
82 gru_export FILE *gru_io_open_file_path(const char *path, gru_status_t *status);
83 
93 gru_export FILE *
94  gru_io_open_file_read(const char *dir, const char *name, gru_status_t *status);
95 
104 gru_export FILE *gru_io_open_file_read_path(const char *path, gru_status_t *status);
105 
115 gru_export FILE *
116  gru_io_open_unique_file(const char *dir, const char *name, gru_status_t *status);
117 
127 gru_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 FILE * gru_io_open_file_read(const char *dir, const char *name, gru_status_t *status)
Tries to safely open a file (ie.
Definition: gru_ioutils.c:80
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_unique_file(const char *dir, const char *name, gru_status_t *status)
Tries to safely open a file (ie.
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.
Definition: gru_ioutils.c:98
gru_export FILE * gru_io_open_file(const char *dir, const char *name, gru_status_t *status)
Tries to safely open a file (ie.
Definition: gru_ioutils.c:62
gru_export FILE * gru_io_open_file_path(const char *path, gru_status_t *status)
Tries to safely open a file (ie.
Definition: gru_ioutils.c:58
#define gru_export
Definition: gru_portable.h:19
Status type.
Definition: gru_status.h:47