GRU - Generic Reusable Utilities
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
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 
58  const char *dir, const char *name, FILE *fd, gru_status_t *status);
59 
71  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 
94  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 
116  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 */
#define gru_export
Definition: gru_portable.h:19
Status type.
Definition: gru_status.h:47
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
bool gru_io_remap(const char *dir, const char *name, FILE *fd, gru_status_t *status)
IO utilities.
Definition: gru_ioutils.c:19
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
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
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
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
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