mirror of
https://github.com/vivier/EMILE.git
synced 2024-11-14 22:04:43 +00:00
add fseek()
This commit is contained in:
parent
1d9d4b7255
commit
383b010988
38
libiso9660/iso9660_fseek.c
Normal file
38
libiso9660/iso9660_fseek.c
Normal file
@ -0,0 +1,38 @@
|
||||
/*
|
||||
*
|
||||
* (c) 2005 Laurent Vivier <LaurentVivier@wanadoo.fr>
|
||||
*
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#include "libiso9660.h"
|
||||
|
||||
extern iso9660_read_t __iso9660_device_read;
|
||||
|
||||
int iso9660_fseek(iso9660_FILE *file, long offset, int whence)
|
||||
{
|
||||
long new_offset;
|
||||
|
||||
switch(whence)
|
||||
{
|
||||
case SEEK_SET:
|
||||
new_offset = offset;
|
||||
break;
|
||||
case SEEK_CUR:
|
||||
new_offset += offset;
|
||||
break;
|
||||
case SEEK_END:
|
||||
new_offset = file->size + offset;
|
||||
break;
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
|
||||
if ( (new_offset < 0) || (new_offset > file->size) )
|
||||
return -1;
|
||||
|
||||
file->offset = offset;
|
||||
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user