Originální popis anglicky:
fgetpos, fseek, fsetpos, ftell, rewind - reposition a stream
Návod, kniha: Linux Programmer's Manual
#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 the global variable
errno is set to indicate the error.
- 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).
The
fgetpos,
fsetpos,
fseek,
ftell, and
rewind functions conform to ANSI X3.159-1989 (``ANSI C'').
lseek(2),
fseeko(3)