1
0
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:
cpg 2000-08-11 21:53:56 +00:00
parent d6a3b84948
commit f756e60532
4 changed files with 89 additions and 0 deletions

19
libsrc/common/fgetpos.c Normal file
View 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
View 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
View 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
View 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() */
}