fseek

NAME

fgetpos, fseek, fsetpos, ftell, rewind - reposition a stream

SYNOPSIS

#include <stdio.h> I int fseek(FILE * stream , long offset , int whence );
I long ftell(FILE * stream );
I void rewind(FILE * stream );
I int fgetpos(FILE * stream , fpos_t * pos );
I int fsetpos(FILE * stream , fpos_t * pos );

DESCRIPTION

The R fseek () function sets the file position indicator for the stream pointed to by R stream . The new position, measured in bytes, is obtained by adding offset bytes to the position specified by R whence . If whence is set to R SEEK_SET , R SEEK_CUR , or R 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 R 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 R ftell () function obtains the current value of the file position indicator for the stream pointed to by R stream .
The R 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 R fgetpos () and R fsetpos () functions are alternate interfaces equivalent to R ftell () and R fseek () (with whence set to R SEEK_SET ), setting and storing the current value of the file offset into or from the object referenced by R 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 VALUE

The R rewind () function returns no value. Upon successful completion, R fgetpos (), R fseek (), R fsetpos () return 0, and R ftell () returns the current offset. Otherwise, -1 is returned and errno is set to indicate the error.

ERRORS

EBADF
The stream specified is not a seekable stream.
EINVAL
The whence argument to R fseek () was not R SEEK_SET , R SEEK_END , or R SEEK_CUR .
The functions R fgetpos (), R fseek (), R fsetpos (), and R 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).

CONFORMING TO

C89, C99.

SEE ALSO

lseek(2), fseeko(3)