Derive-C
Loading...
Searching...
No Matches
file_handle.h
Go to the documentation of this file.
1#pragma once
2
4#include <stdio.h>
5
6typedef struct {
7 FILE* handle;
9
10DC_PUBLIC static dc_file_handle dc_file_handle_new(char const* path, char const* mode) {
11 FILE* handle = fopen(path, mode);
12 DC_ASSERT(handle != NULL, "failed to open file: %s", path);
13 return (dc_file_handle){.handle = handle};
14}
15
16DC_PUBLIC static FILE* dc_file_handle_get(dc_file_handle* self) { return self->handle; }
17
19 DC_ASSERT(self->handle != NULL, "file handle is null");
20 fclose(self->handle);
21 self->handle = NULL;
22}
static DC_PUBLIC dc_file_handle dc_file_handle_new(char const *path, char const *mode)
Definition file_handle.h:10
static DC_PUBLIC FILE * dc_file_handle_get(dc_file_handle *self)
Definition file_handle.h:16
static DC_PUBLIC void dc_file_handle_delete(dc_file_handle *self)
Definition file_handle.h:18
#define DC_PUBLIC
Definition namespace.h:25
#define DC_ASSERT(expr,...)
Definition panic.h:37