xref: /original-bsd/lib/libc/stdio/fseek.3 (revision a64d8d4e)
Copyright (c) 1990 The Regents of the University of California.
All rights reserved.

This code is derived from software contributed to Berkeley by
Chris Torek.

%sccs.include.redist.man%

@(#)fseek.3 6.6 (Berkeley) 01/20/91

FSEEK 3 ""
C 7
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
Fseek sets the position of the next input or output operation on the given stream . The new position is at the signed distance offset bytes from a specified point in the file depending on the value of whence . If whence is set to SEEK_SET , SEEK_CUR , or SEEK_END , the offset is from the beginning, the current position, or the end of the file, respectively. Fseek undoes any effects of ungetc .

Ftell returns the current value of the offset relative to the beginning of the file associated with the named stream .

Rewind is equivalent to ``fseek(stream, 0L, SEEK_SET)'', except the error indicator for the stream is cleared as well (see clearerr (3)).

Fgetpos and fsetpos 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.

"SEE ALSO"
lseek(2)
"RETURN VALUE"
Rewind returns no value. Upon successful completion, fgetpos , fseek , fsetpos , and ftell return 0. Otherwise, -1 is returned and the global variable errno is set to indicate the error.
ERRORS

15 [EBADF] Stream is not a seekable stream.

[EINVAL] The whence argument to fseek was not SEEK_SET, SEEK_END, or SEEK_CUR.

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).

STANDARDS
Fgetpos , fsetpos , fseek , ftell , and rewind conform to ANSI X3.159-1989 (``ANSI C'').