NAME
fgetpos, fseek, fsetpos, ftell, rewind - reposition a stream
SYNOPSIS
#include <stdio.h>
I int fseek(FILE * stream , long offset , int whence );
I long ftell(FILE * stream );
I void rewind(FILE * stream );
I int fgetpos(FILE * stream , fpos_t * pos );
I int fsetpos(FILE * stream , fpos_t * pos );
DESCRIPTION
The
R fseek ()
function sets the file position indicator for the stream pointed to by
R stream .
The new position, measured in bytes, is obtained by adding
offset
bytes to the position specified by
R whence .
If
whence
is set to
R SEEK_SET ,
R SEEK_CUR ,
or
R SEEK_END ,
the offset is relative to the start of the file, the current position
indicator, or end-of-file, respectively.
A successful call to the
R fseek ()
function clears the end-of-file indicator for the stream and undoes
any effects of the
ungetc(3)
function on the same stream.
The
R ftell ()
function obtains the current value of the file position indicator for the
stream pointed to by
R stream .
The
R rewind ()
function sets the file position indicator for the stream pointed to by
stream
to the beginning of the file.
It is equivalent to:
(void) fseek(stream, 0L, SEEK_SET)
except that the error indicator for the stream is also cleared (see
clearerr(3)).
The
R fgetpos ()
and
R fsetpos ()
functions are alternate interfaces equivalent to
R ftell ()
and
R fseek ()
(with whence set to
R SEEK_SET ),
setting and storing the current value of the file offset into or from the
object referenced by
R pos .
On some non-UNIX systems an
fpos_t
object may be a complex object and these routines may be the only way to
portably reposition a text stream.
RETURN VALUE
The
R rewind ()
function returns no value.
Upon successful completion,
R fgetpos (),
R fseek (),
R fsetpos ()
return 0,
and
R ftell ()
returns the current offset.
Otherwise, -1 is returned and
errno
is set to indicate the error.
ERRORS
EBADF
The
stream
specified is not a seekable stream.
EINVAL
The
whence
argument to
R fseek ()
was not
R SEEK_SET ,
R SEEK_END ,
or
R SEEK_CUR .
The functions
R fgetpos (),
R fseek (),
R fsetpos (),
and
R ftell ()
may also fail and set
errno
for any of the errors specified for the routines
fflush(3),
fstat(2),
lseek(2),
and
malloc(3).
CONFORMING TO
C89, C99.
SEE ALSO