FSEEK
Section: Linux Programmer's Manual (3)
Updated: 1993-11-29
Index
Return to Main Contents
NAME
fgetpos, fseek, fsetpos, ftell, rewind - reposition a stream
SYNOPSIS
#include <stdio.h>
int fseek(FILE *stream, long offset, int whence);
long ftell(FILE *stream);
void rewind(FILE *stream);
int fgetpos(FILE *stream, fpos_t *pos);
int fsetpos(FILE *stream, fpos_t *pos);
DESCRIPTION
The
fseek()
function sets the file position indicator for the stream pointed to by
stream.
The new position, measured in bytes, is obtained by adding
offset
bytes to the position specified by
whence.
If
whence
is set to
SEEK_SET,
SEEK_CUR,
or
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
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
ftell()
function obtains the current value of the file position indicator for the
stream pointed to by
stream.
The
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
fgetpos()
and
fsetpos()
functions are alternate interfaces equivalent to
ftell()
and
fseek()
(with whence set to
SEEK_SET),
setting and storing the current value of the file offset into or from the
object referenced by
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
rewind()
function returns no value.
Upon successful completion,
fgetpos(),
fseek(),
fsetpos()
return 0,
and
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
fseek()
was not
SEEK_SET,
SEEK_END,
or
SEEK_CUR.
The functions
fgetpos(),
fseek(),
fsetpos(),
and
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
lseek(2),
fseeko(3)
COLOPHON
This page is part of release 3.22 of the Linux
man-pages
project.
A description of the project,
and information about reporting bugs,
can be found at
http://www.kernel.org/doc/man-pages/.