Derive-C
Loading...
Searching...
No Matches
file_handle.h
Go to the documentation of this file.
1
#pragma once
2
3
#include <
derive-c/core/prelude.h
>
4
#include <stdio.h>
5
6
typedef
struct
{
7
FILE*
handle
;
8
}
dc_file_handle
;
9
10
DC_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
16
DC_PUBLIC
static
FILE*
dc_file_handle_get
(
dc_file_handle
* self) {
return
self->
handle
; }
17
18
DC_PUBLIC
static
void
dc_file_handle_delete
(
dc_file_handle
* self) {
19
DC_ASSERT
(self->
handle
!= NULL,
"file handle is null"
);
20
fclose(self->
handle
);
21
self->
handle
= NULL;
22
}
prelude.h
dc_file_handle_new
static DC_PUBLIC dc_file_handle dc_file_handle_new(char const *path, char const *mode)
Definition
file_handle.h:10
dc_file_handle_get
static DC_PUBLIC FILE * dc_file_handle_get(dc_file_handle *self)
Definition
file_handle.h:16
dc_file_handle_delete
static DC_PUBLIC void dc_file_handle_delete(dc_file_handle *self)
Definition
file_handle.h:18
DC_PUBLIC
#define DC_PUBLIC
Definition
namespace.h:25
DC_ASSERT
#define DC_ASSERT(expr,...)
Definition
panic.h:37
dc_file_handle
Definition
file_handle.h:6
dc_file_handle::handle
FILE * handle
Definition
file_handle.h:7
src
derive-c
utils
file_handle.h
Generated by
1.16.0