int
fseek(FILE *stream, long int offset, int whence)
int
fseeko(FILE *stream, off_t offset, int whence)
long int
ftell(FILE *stream)
off_t
ftello(FILE *stream)
void
rewind(FILE *stream)
int
fgetpos(FILE * restrict stream, fpos_t * restrict pos)
int
fsetpos(FILE * restrict stream, const fpos_t * restrict pos)
)
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
fseeko()
function is identical to the
fseek()
function except that the
offset
argument is of type
off_t.
The
ftell()
function
obtains the current value of the file position indicator for the
stream pointed to by
stream.
The
ftello()
function is identical to the
ftell()
function except that the return value is of type
off_t.
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)).
In this implementation, the
fgetpos()
and
fsetpos()
functions
are alternative interfaces equivalent to
ftell(),
ftello(),
fseek()
and
fseeko()
(with whence set to
SEEK_SET),
setting and storing the current value of
the file offset into or from the object referenced by
pos.
In others implementations, an
``fpos_t''
object may be a complex object
and these routines may be the only way to portably reposition a text stream.
)
function
returns no value.
Upon successful completion,
fgetpos(),
fseek(),
fsetpos()
return 0,
and
ftell()
returns the current offset.
Otherwise,
fseek()
and
ftell()
return -1 and
the others
return a nonzero value and the global variable
errno
is set to indicate the error.
EBADF]stream
specified
is not a seekable stream.
EINVAL]whence
argument to
fseek()
was not
SEEK_SET,
SEEK_END,
or
SEEK_CUR.
The function
fgetpos(),
fseek(),
fseeko(),
fsetpos(),
ftell(),
ftello(),
and
rewind()
may also fail and set
errno
for any of the errors specified for the routines
fflush(3),
fstat(2),
lseek(2),
and
malloc(3).
),
fsetpos(),
fseek(),
ftell(),
and
rewind()
functions
conform to
ANSI X3.159-1989 (``ANSI C89'') .
The
fseeko()
and
ftello()
functions conform to
X/Open System Interfaces and Headers Issue 5 (``XSH5'') .
)
and
fsetpos()
functions don't store/set shift states of the stream in this implementation.