Implementing filemanager

Implementing and testing filemanager and upgrading epanet_output library to use it.
This commit is contained in:
Michael Tryby
2019-04-01 15:03:02 -04:00
parent 69da9a4997
commit 23ac179ec1
7 changed files with 231 additions and 150 deletions
+18 -9
View File
@@ -8,6 +8,14 @@
#include <stdio.h>
// F_OFF Must be a 8 byte / 64 bit integer for large file support
#ifdef _WIN32 // Windows (32-bit and 64-bit)
#define F_OFF __int64
#else // Other platforms
#define F_OFF off_t
#endif
#define FILE_MAXNAME 259
#define FILE_MAXMODE 3
@@ -17,21 +25,22 @@ extern "C" {
#endif
typedef struct file_s {
char filename[FILE_MAXNAME + 1],
FILE *file;
char mode[FILE_MAXMODE + 1];
} file_handle_t;
typedef struct file_s file_handle_t;
file_handle_t *create_file_manager(const char *filename, const char *file_mode);
file_handle_t *create_file_manager();
int delete_file_manager(file_handle_t *file_handle);
void delete_file_manager(file_handle_t *file_handle);
int open_file(file_handle_t *file_handle);
int open_file(file_handle_t *file_handle, const char *filename, const char *file_mode);
int seek_file(file_handle_t *file_handle, F_OFF offset, int whence);
F_OFF tell_file(file_handle_t *file_handle);
size_t read_file(void *ptr, size_t size, size_t nmemb, file_handle_t *file_handle);
FILE *get_file(file_handle_t *file_handle);
int close_file(file_handle_t *file_handle);