8#if !defined(_POSIX_C_SOURCE) && !defined(_WIN32)
9#define _POSIX_C_SOURCE 200809L
10#define _FILE_OFFSET_BITS 64
22#ifndef WIN32_LEAN_AND_MEAN
23#define WIN32_LEAN_AND_MEAN
29#if defined(_MSC_VER) && !defined(_SSIZE_T_DEFINED)
30typedef intptr_t ssize_t;
31#define _SSIZE_T_DEFINED
35typedef HANDLE native_handle_t;
36#define INVALID_NATIVE_HANDLE INVALID_HANDLE_VALUE
46typedef int native_handle_t;
48enum { INVALID_NATIVE_HANDLE = (-1) };
198size_t file_read(
const file_t* file,
void* buffer,
size_t size,
size_t count);
210size_t file_write(
file_t* file,
const void* buffer,
size_t size,
size_t count);
231ssize_t
file_pread(
const file_t* file,
void* buffer,
size_t size, int64_t offset);
243ssize_t
file_pwrite(
file_t* file,
const void* buffer,
size_t size, int64_t offset);
296void*
file_mmap(
const file_t* file,
size_t length,
bool read_access,
bool write_access);
ssize_t file_pwrite(file_t *file, const void *buffer, size_t size, int64_t offset)
void file_close(file_t *file)
file_result_t filesize_tostring(uint64_t size, char *buf, size_t len)
file_result_t file_truncate(file_t *file, int64_t length)
size_t file_read(const file_t *file, void *buffer, size_t size, size_t count)
@ FILE_ERROR_INVALID_ARGS
@ FILE_ERROR_SYSTEM_ERROR
@ FILE_ERROR_MEMORY_FAILED
void * file_readall(file_t *file, size_t *size_out)
ssize_t file_pread(const file_t *file, void *buffer, size_t size, int64_t offset)
file_result_t file_open(file_t *file, const char *filename, const char *mode)
file_result_t file_seek(file_t *file, int64_t offset, int whence)
file_result_t file_flush(file_t *file)
void * file_mmap(const file_t *file, size_t length, bool read_access, bool write_access)
size_t file_write_string(file_t *file, const char *str)
int64_t file_tell(const file_t *file)
file_result_t file_copy(const file_t *src, file_t *dst)
file_result_t file_lock(const file_t *file)
size_t file_write(file_t *file, const void *buffer, size_t size, size_t count)
int populate_file_attrs(const char *path, FileAttributes *attr)
file_result_t file_munmap(void *addr, size_t length)
file_result_t file_unlock(const file_t *file)
native_handle_t native_handle