File* -> FileHandle (fix of sizeof(File))
This commit is contained in:
parent
8e572a9db3
commit
6c6c4fff8b
2
cbuild
2
cbuild
@ -1 +1 @@
|
||||
Subproject commit 112fcc04652d6ce65fbde215cd3d1f8935db2a7c
|
||||
Subproject commit 9f04507bd880343b5a99194d5c744879cdb9efe4
|
||||
@ -2,7 +2,7 @@
|
||||
#include "../String/StringBuilder.h"
|
||||
#include "io_includes.h"
|
||||
|
||||
kt_define(File, (freeMembers_t)file_close, NULL)
|
||||
kt_define(FileHandle, (freeMembers_t)file_close, NULL)
|
||||
|
||||
bool file_exists(const char* path){
|
||||
if(path[0]=='.'){
|
||||
@ -47,13 +47,13 @@ char* FileOpenMode_toStr(FileOpenMode m){
|
||||
}
|
||||
|
||||
Maybe file_open(const char* path, FileOpenMode mode){
|
||||
File* file=fopen(path, FileOpenMode_toStr(mode));
|
||||
FileHandle file=fopen(path, FileOpenMode_toStr(mode));
|
||||
if(!file)
|
||||
safethrow(cptr_concat("can't open file ", (char*)path),;);
|
||||
return SUCCESS(UniHeapPtr(File,file));
|
||||
return SUCCESS(UniHeapPtr(FileHandle,file));
|
||||
}
|
||||
|
||||
Maybe file_close(File* file){
|
||||
Maybe file_close(FileHandle file){
|
||||
if(!file)
|
||||
safethrow(ERR_NULLPTR,;);
|
||||
if(fclose(file))
|
||||
@ -67,13 +67,13 @@ Maybe file_close(File* file){
|
||||
if(rezult!=0) \
|
||||
safethrow(ERR_IO,;);
|
||||
|
||||
Maybe file_writeChar(File* file, char byte){
|
||||
Maybe file_writeChar(FileHandle file, char byte){
|
||||
i32 rezult=fputc(byte, file);
|
||||
ioWriteCheck();
|
||||
return MaybeNull;
|
||||
}
|
||||
|
||||
Maybe file_writeBuffer(File* file, char* buffer, u64 length){
|
||||
Maybe file_writeBuffer(FileHandle file, char* buffer, u64 length){
|
||||
i32 rezult=0;
|
||||
for(u64 i=0; i<length && !rezult; i++)
|
||||
rezult=fputc(buffer[i], file);
|
||||
@ -81,21 +81,21 @@ Maybe file_writeBuffer(File* file, char* buffer, u64 length){
|
||||
return MaybeNull;
|
||||
}
|
||||
|
||||
Maybe file_writeCptr(File* file, char* cptr){
|
||||
Maybe file_writeCptr(FileHandle file, char* cptr){
|
||||
i32 rezult=fputs(cptr, file);
|
||||
ioWriteCheck();
|
||||
return MaybeNull;
|
||||
}
|
||||
|
||||
|
||||
Maybe file_readChar(File* file){
|
||||
Maybe file_readChar(FileHandle file){
|
||||
i32 rezult=fgetc(file);
|
||||
if(feof(file)) safethrow(ERR_IO_EOF,;);
|
||||
if(ferror(file)) safethrow(ERR_IO,;);
|
||||
return SUCCESS(UniUInt64(rezult));
|
||||
}
|
||||
|
||||
Maybe file_readBuffer(File* file, char* buffer, u64 length){
|
||||
Maybe file_readBuffer(FileHandle file, char* buffer, u64 length){
|
||||
i32 rezult=0;
|
||||
u64 i=0;
|
||||
for(; i<length && rezult!=EOF; i++){
|
||||
@ -106,7 +106,7 @@ Maybe file_readBuffer(File* file, char* buffer, u64 length){
|
||||
return SUCCESS(UniUInt64(i));
|
||||
}
|
||||
|
||||
Maybe file_readAll(File* file, char** allBytes){
|
||||
Maybe file_readAll(FileHandle file, char** allBytes){
|
||||
i32 rezult=0;
|
||||
char buffer[256];
|
||||
string bufStr={.ptr=buffer, .length=sizeof(buffer)};
|
||||
|
||||
@ -8,8 +8,8 @@ extern "C" {
|
||||
#include "../Array/Array.h"
|
||||
#include "../String/string.h"
|
||||
|
||||
typedef FILE File;
|
||||
kt_declare(File);
|
||||
typedef FILE* FileHandle;
|
||||
kt_declare(FileHandle);
|
||||
|
||||
bool file_exists(const char* path);
|
||||
|
||||
@ -32,44 +32,44 @@ PACKED_ENUM(FileOpenMode,
|
||||
/// @brief opens file
|
||||
/// @param path path to file
|
||||
/// @param mode Read/Write/Append/ReadWrite/ReadAppend
|
||||
/// @return Maybe<File*>
|
||||
/// @return Maybe<FileHandle>
|
||||
Maybe file_open(const char* path, FileOpenMode mode);
|
||||
|
||||
/// @brief closes file descriptor
|
||||
/// @return Maybe<void>
|
||||
Maybe file_close(File* file);
|
||||
Maybe file_close(FileHandle file);
|
||||
|
||||
/// @brief closes file descriptor
|
||||
/// @param byte byte to write
|
||||
/// @return Maybe<void>
|
||||
Maybe file_writeChar(File* file, char byte);
|
||||
Maybe file_writeChar(FileHandle file, char byte);
|
||||
|
||||
/// @brief closes file descriptor
|
||||
/// @param buffer bytes to write
|
||||
/// @param length buffer length
|
||||
/// @return Maybe<void>
|
||||
Maybe file_writeBuffer(File* file, char* buffer, u64 length);
|
||||
Maybe file_writeBuffer(FileHandle file, char* buffer, u64 length);
|
||||
|
||||
/// @brief writes all cstring array content to file
|
||||
/// @param cptr zero-terminated cstring
|
||||
/// @return Maybe<void>
|
||||
Maybe file_writeCptr(File* file, char* cptr);
|
||||
Maybe file_writeCptr(FileHandle file, char* cptr);
|
||||
|
||||
|
||||
/// @brief reads single byte from file
|
||||
/// @return Maybe<char>
|
||||
Maybe file_readChar(File* file);
|
||||
Maybe file_readChar(FileHandle file);
|
||||
|
||||
/// @brief reads byte array of specofied length
|
||||
/// @param buffer buffer that will be filled with file bytes
|
||||
/// @param length buffer length
|
||||
/// @return Maybe<u64> total number of successfully read bytes (<=length)
|
||||
Maybe file_readBuffer(File* file, char* buffer, u64 length);
|
||||
Maybe file_readBuffer(FileHandle file, char* buffer, u64 length);
|
||||
|
||||
/// @brief reads all bytes from file
|
||||
/// @param allBytes ptr to the file's content will be pushed there
|
||||
/// @return Maybe<u64> total number of successfully read bytes
|
||||
Maybe file_readAll(File* file, char** allBytes);
|
||||
Maybe file_readAll(FileHandle file, char** allBytes);
|
||||
|
||||
#if __cplusplus
|
||||
}
|
||||
|
||||
@ -83,5 +83,5 @@ void kt_initKerepTypes(){
|
||||
kt_register(StringBuilder);
|
||||
|
||||
//File
|
||||
kt_register(File);
|
||||
kt_register(FileHandle);
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user