fgetpos, fseek, fsetpos, ftell, rewind — reposition a stream
#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) ; |
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.
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.
The stream
specified is not a seekable stream.
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).
|