FSEEK (3)
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 VALUES
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 the global
variable 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 function
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).
SEE ALSO
STANDARDS
The
fgetpos ,
fsetpos ,
fseek ,
ftell ,
and
rewind
functions conform to ANSI C3.159-1989 (``ANSI C'').
man3/fseek.3
man3/fseek.3
|
|