mirror of
https://github.com/cc65/cc65.git
synced 2024-12-24 11:31:31 +00:00
initial check-in of file positioning stdio functions
git-svn-id: svn://svn.cc65.org/cc65/trunk@275 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
parent
d6a3b84948
commit
f756e60532
19
libsrc/common/fgetpos.c
Normal file
19
libsrc/common/fgetpos.c
Normal file
@ -0,0 +1,19 @@
|
||||
/*
|
||||
* fgetpos.c
|
||||
*
|
||||
* Christian Groessler, 07-Aug-2000
|
||||
*/
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
|
||||
int fgetpos(FILE* f, fpos_t *pos)
|
||||
{
|
||||
*pos = ftell (f);
|
||||
|
||||
if (*pos != -1)
|
||||
return 0;
|
||||
return 1;
|
||||
}
|
||||
|
28
libsrc/common/fseek.c
Normal file
28
libsrc/common/fseek.c
Normal file
@ -0,0 +1,28 @@
|
||||
/*
|
||||
* fseek.c
|
||||
*
|
||||
* Christian Groessler, 07-Aug-2000
|
||||
*/
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include "_file.h"
|
||||
|
||||
|
||||
int fseek(FILE* f, long offset, int whence)
|
||||
{
|
||||
long res;
|
||||
|
||||
/* Is the file open? */
|
||||
if ((f->f_flags & _FOPEN) == 0) {
|
||||
_errno = EINVAL; /* File not open */
|
||||
return 1;
|
||||
}
|
||||
|
||||
res = lseek(f->f_fd, offset, whence);
|
||||
if (res == -1L) return 1;
|
||||
return 0;
|
||||
}
|
||||
|
15
libsrc/common/fsetpos.c
Normal file
15
libsrc/common/fsetpos.c
Normal file
@ -0,0 +1,15 @@
|
||||
/*
|
||||
* fsetpos.c
|
||||
*
|
||||
* Christian Groessler, 07-Aug-2000
|
||||
*/
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
|
||||
int fsetpos(FILE* f, const fpos_t *pos)
|
||||
{
|
||||
return fseek (f, (fpos_t)*pos, SEEK_SET);
|
||||
}
|
||||
|
27
libsrc/common/ftell.c
Normal file
27
libsrc/common/ftell.c
Normal file
@ -0,0 +1,27 @@
|
||||
/*
|
||||
* ftell.c
|
||||
*
|
||||
* Christian Groessler, 07-Aug-2000
|
||||
*/
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include "_file.h"
|
||||
|
||||
|
||||
long ftell(FILE* f)
|
||||
{
|
||||
long pos;
|
||||
|
||||
/* Is the file open? */
|
||||
if ((f->f_flags & _FOPEN) == 0) {
|
||||
_errno = EINVAL; /* File not open */
|
||||
return -1L;
|
||||
}
|
||||
|
||||
pos = lseek(f->f_fd, 0L, SEEK_CUR);
|
||||
return pos; /* -1 for error, comes from lseek() */
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user