File* -> FileHandle (fix of sizeof(File))

This commit is contained in:
timerix 2023-03-15 05:11:03 +06:00
parent 8e572a9db3
commit 6c6c4fff8b
4 changed files with 22 additions and 22 deletions

2
cbuild

@ -1 +1 @@
Subproject commit 112fcc04652d6ce65fbde215cd3d1f8935db2a7c Subproject commit 9f04507bd880343b5a99194d5c744879cdb9efe4

View File

@ -2,7 +2,7 @@
#include "../String/StringBuilder.h" #include "../String/StringBuilder.h"
#include "io_includes.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){ bool file_exists(const char* path){
if(path[0]=='.'){ if(path[0]=='.'){
@ -47,13 +47,13 @@ char* FileOpenMode_toStr(FileOpenMode m){
} }
Maybe file_open(const char* path, FileOpenMode mode){ Maybe file_open(const char* path, FileOpenMode mode){
File* file=fopen(path, FileOpenMode_toStr(mode)); FileHandle file=fopen(path, FileOpenMode_toStr(mode));
if(!file) if(!file)
safethrow(cptr_concat("can't open file ", (char*)path),;); 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) if(!file)
safethrow(ERR_NULLPTR,;); safethrow(ERR_NULLPTR,;);
if(fclose(file)) if(fclose(file))
@ -67,13 +67,13 @@ Maybe file_close(File* file){
if(rezult!=0) \ if(rezult!=0) \
safethrow(ERR_IO,;); safethrow(ERR_IO,;);
Maybe file_writeChar(File* file, char byte){ Maybe file_writeChar(FileHandle file, char byte){
i32 rezult=fputc(byte, file); i32 rezult=fputc(byte, file);
ioWriteCheck(); ioWriteCheck();
return MaybeNull; return MaybeNull;
} }
Maybe file_writeBuffer(File* file, char* buffer, u64 length){ Maybe file_writeBuffer(FileHandle file, char* buffer, u64 length){
i32 rezult=0; i32 rezult=0;
for(u64 i=0; i<length && !rezult; i++) for(u64 i=0; i<length && !rezult; i++)
rezult=fputc(buffer[i], file); rezult=fputc(buffer[i], file);
@ -81,21 +81,21 @@ Maybe file_writeBuffer(File* file, char* buffer, u64 length){
return MaybeNull; return MaybeNull;
} }
Maybe file_writeCptr(File* file, char* cptr){ Maybe file_writeCptr(FileHandle file, char* cptr){
i32 rezult=fputs(cptr, file); i32 rezult=fputs(cptr, file);
ioWriteCheck(); ioWriteCheck();
return MaybeNull; return MaybeNull;
} }
Maybe file_readChar(File* file){ Maybe file_readChar(FileHandle file){
i32 rezult=fgetc(file); i32 rezult=fgetc(file);
if(feof(file)) safethrow(ERR_IO_EOF,;); if(feof(file)) safethrow(ERR_IO_EOF,;);
if(ferror(file)) safethrow(ERR_IO,;); if(ferror(file)) safethrow(ERR_IO,;);
return SUCCESS(UniUInt64(rezult)); 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; i32 rezult=0;
u64 i=0; u64 i=0;
for(; i<length && rezult!=EOF; i++){ for(; i<length && rezult!=EOF; i++){
@ -106,7 +106,7 @@ Maybe file_readBuffer(File* file, char* buffer, u64 length){
return SUCCESS(UniUInt64(i)); return SUCCESS(UniUInt64(i));
} }
Maybe file_readAll(File* file, char** allBytes){ Maybe file_readAll(FileHandle file, char** allBytes){
i32 rezult=0; i32 rezult=0;
char buffer[256]; char buffer[256];
string bufStr={.ptr=buffer, .length=sizeof(buffer)}; string bufStr={.ptr=buffer, .length=sizeof(buffer)};

View File

@ -8,8 +8,8 @@ extern "C" {
#include "../Array/Array.h" #include "../Array/Array.h"
#include "../String/string.h" #include "../String/string.h"
typedef FILE File; typedef FILE* FileHandle;
kt_declare(File); kt_declare(FileHandle);
bool file_exists(const char* path); bool file_exists(const char* path);
@ -32,44 +32,44 @@ PACKED_ENUM(FileOpenMode,
/// @brief opens file /// @brief opens file
/// @param path path to file /// @param path path to file
/// @param mode Read/Write/Append/ReadWrite/ReadAppend /// @param mode Read/Write/Append/ReadWrite/ReadAppend
/// @return Maybe<File*> /// @return Maybe<FileHandle>
Maybe file_open(const char* path, FileOpenMode mode); Maybe file_open(const char* path, FileOpenMode mode);
/// @brief closes file descriptor /// @brief closes file descriptor
/// @return Maybe<void> /// @return Maybe<void>
Maybe file_close(File* file); Maybe file_close(FileHandle file);
/// @brief closes file descriptor /// @brief closes file descriptor
/// @param byte byte to write /// @param byte byte to write
/// @return Maybe<void> /// @return Maybe<void>
Maybe file_writeChar(File* file, char byte); Maybe file_writeChar(FileHandle file, char byte);
/// @brief closes file descriptor /// @brief closes file descriptor
/// @param buffer bytes to write /// @param buffer bytes to write
/// @param length buffer length /// @param length buffer length
/// @return Maybe<void> /// @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 /// @brief writes all cstring array content to file
/// @param cptr zero-terminated cstring /// @param cptr zero-terminated cstring
/// @return Maybe<void> /// @return Maybe<void>
Maybe file_writeCptr(File* file, char* cptr); Maybe file_writeCptr(FileHandle file, char* cptr);
/// @brief reads single byte from file /// @brief reads single byte from file
/// @return Maybe<char> /// @return Maybe<char>
Maybe file_readChar(File* file); Maybe file_readChar(FileHandle file);
/// @brief reads byte array of specofied length /// @brief reads byte array of specofied length
/// @param buffer buffer that will be filled with file bytes /// @param buffer buffer that will be filled with file bytes
/// @param length buffer length /// @param length buffer length
/// @return Maybe<u64> total number of successfully read bytes (<=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 /// @brief reads all bytes from file
/// @param allBytes ptr to the file's content will be pushed there /// @param allBytes ptr to the file's content will be pushed there
/// @return Maybe<u64> total number of successfully read bytes /// @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 #if __cplusplus
} }

View File

@ -83,5 +83,5 @@ void kt_initKerepTypes(){
kt_register(StringBuilder); kt_register(StringBuilder);
//File //File
kt_register(File); kt_register(FileHandle);
} }