fixed file_getSize
This commit is contained in:
@@ -47,7 +47,7 @@ Result(FILE*) file_openOrCreateReadWrite(cstr file_name){
|
||||
|
||||
|
||||
|
||||
Result(i64) file_getSize(FILE* f){
|
||||
Result(i64) file_tellPos(FILE* f){
|
||||
i64 r = IFWIN(_ftelli64, ftello64)(f);
|
||||
if(r < 0){
|
||||
return RESULT_ERROR_ERRNO();
|
||||
@@ -64,6 +64,18 @@ Result(void) file_seek(FILE* f, i64 offset, SeekOrigin origin){
|
||||
return RESULT_VOID;
|
||||
}
|
||||
|
||||
Result(i64) file_getSize(FILE* f){
|
||||
Deferral(4);
|
||||
// get current position
|
||||
try(i64 original_pos, i, file_tellPos(f));
|
||||
// seek to end
|
||||
try_void(file_seek(f, 0, SeekOrigin_End));
|
||||
try(i64 size, i, file_tellPos(f));
|
||||
// restore original position
|
||||
try_void(file_seek(f, original_pos, SeekOrigin_Start));
|
||||
Return RESULT_VALUE(i, size);
|
||||
}
|
||||
|
||||
|
||||
Result(void) file_writeStructs(FILE* f, const void* src, u64 struct_size, u64 count){
|
||||
u64 r = fwrite(src, struct_size, count, f);
|
||||
|
||||
Reference in New Issue
Block a user