This commit is contained in:
62
CgeFile.h
Normal file
62
CgeFile.h
Normal file
@@ -0,0 +1,62 @@
|
||||
#ifndef CGE_FILE_H
|
||||
#define CGE_FILE_H
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stddef.h>
|
||||
|
||||
enum CgeFileMode {
|
||||
CGE_FILE_READ = (1 << 0),
|
||||
CGE_FILE_WRITE = (1 << 1),
|
||||
CGE_FILE_READWRITE = (1 << 0) | (1 << 1),
|
||||
CGE_FILE_APPEND = (1 << 4),
|
||||
CGE_FILE_TRUNCATE = (1 << 5),
|
||||
CGE_FILE_CREATE = (1 << 6),
|
||||
CGE_FILE_EXIST = (1 << 7),
|
||||
};
|
||||
|
||||
enum CgeFileSeek {
|
||||
CGE_FILE_SET,
|
||||
CGE_FILE_CUR,
|
||||
CGE_FILE_END,
|
||||
};
|
||||
|
||||
enum CgeFileFlags {
|
||||
CGE_FILE_OK = (1 << 0),
|
||||
CGE_FILE_ERROR = (1 << 1),
|
||||
CGE_FILE_EOF = (1 << 2),
|
||||
};
|
||||
|
||||
enum CgeFileCode {
|
||||
CGE_FILE_EOK, /* Success */
|
||||
CGE_FILE_EUNKNOWN, /* Unknown or unexpected error */
|
||||
CGE_FILE_EOOM, /* Out of memory */
|
||||
CGE_FILE_ENOSPC, /* No space left on device */
|
||||
CGE_FILE_EINVAL, /* Invalid mode/flag combination */
|
||||
CGE_FILE_ENOENT, /* No such file or directory */
|
||||
CGE_FILE_EACCES, /* Permission denied */
|
||||
CGE_FILE_EROFS, /* Read-only file system */
|
||||
CGE_FILE_EEXIST, /* File already exists */
|
||||
CGE_FILE_EISDIR, /* Is a directory */
|
||||
CGE_FILE_EMFILE, /* Too many open files */
|
||||
CGE_FILE_ENAMETOOLONG /* File name too long */
|
||||
};
|
||||
|
||||
typedef struct CgeFile CgeFile;
|
||||
|
||||
CgeFile *CgeFileNew(const char *path, int mode, int *result);
|
||||
void CgeFileFree(CgeFile *file);
|
||||
int CgeFileRead(CgeFile *file, char *buffer, size_t size, size_t *actual);
|
||||
int CgeFileWrite(CgeFile *file, const char *buffer, size_t size,
|
||||
size_t *actual);
|
||||
int CgeFilePeek(CgeFile *file, char *buffer, size_t size, size_t *actual);
|
||||
int CgeFileTell(CgeFile *file, int64_t *offset);
|
||||
int CgeFileSeek(CgeFile *file, int64_t offset, int whence);
|
||||
int CgeFileFlush(CgeFile *file);
|
||||
int CgeFileSize(CgeFile *file, int64_t *size);
|
||||
int CgeFileFlags(CgeFile *file, int *flags);
|
||||
int CgeFileError(CgeFile *file);
|
||||
int CgeFileEndOfFile(CgeFile *file);
|
||||
int CgeFileClear(CgeFile *file);
|
||||
int CgeFileErrorCode(CgeFile *file);
|
||||
|
||||
#endif /* CGE_FILE_H */
|
||||
Reference in New Issue
Block a user