aboutsummaryrefslogtreecommitdiffstats
path: root/core.c
diff options
context:
space:
mode:
Diffstat (limited to 'core.c')
-rw-r--r--core.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/core.c b/core.c
index 90f8fd9..7de3085 100644
--- a/core.c
+++ b/core.c
@@ -216,6 +216,32 @@ int file_size( file_t *ft )
}
+int file_resize( file_t *ft, size_t size )
+{
+ int ret = 0;
+ off_t cur_pos;
+ off_t cur_size;
+ off_t resize;
+ uint8_t *buf;
+
+ cur_pos = fd_pos( ft->fd );
+ cur_size = fd_size( ft->fd );
+ if (cur_size < 0)
+ {
+ return -1;
+ }
+ buf = malloc( size );
+ memset( buf, 0, size );
+ fd_seek( ft->fd, cur_size, FD_SEEK_SET );
+ resize = fd_write( ft->fd, buf, size );
+ fd_seek( ft->fd, cur_pos, FD_SEEK_SET );
+
+ ret = resize;
+
+ return ret;
+}
+
+
int file_open( file_t *ft, const char *filename, int flags, int mode )
{
int ret = 0;