diff options
author | FreeArtMan <dos21h@gmail.com> | 2016-05-24 00:00:45 +0100 |
---|---|---|
committer | FreeArtMan <dos21h@gmail.com> | 2016-05-24 00:00:45 +0100 |
commit | 60f08b0a4676943651bc7b66cb8531325b1c6132 (patch) | |
tree | 5cea9737ea510f579cefa6a4712bf8caf0577da7 /core.c | |
parent | cb141140579d796ae5cafe6da52b4f0b87be6a84 (diff) | |
download | ihe-60f08b0a4676943651bc7b66cb8531325b1c6132.tar.gz ihe-60f08b0a4676943651bc7b66cb8531325b1c6132.zip |
Added resize c
Diffstat (limited to 'core.c')
-rw-r--r-- | core.c | 26 |
1 files changed, 26 insertions, 0 deletions
@@ -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; |