.\" Chris Torek and the American National Standards Committee X3,
.\" on Information Processing Systems.
.\"
+.\" %%%LICENSE_START(BSD_4_CLAUSE_UCB)
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
+.\" %%%LICENSE_END
.\"
.\" @(#)fseek.3 6.11 (Berkeley) 6/29/91
.\"
.\" Converted for Linux, Mon Nov 29 15:22:01 1993, faith@cs.unc.edu
.\"
-.TH FSEEK 3 1993-11-29 "BSD MANPAGE" "Linux Programmer's Manual"
+.TH FSEEK 3 2018-04-30 "GNU" "Linux Programmer's Manual"
.SH NAME
fgetpos, fseek, fsetpos, ftell, rewind \- reposition a stream
.SH SYNOPSIS
.B #include <stdio.h>
-.sp
+.PP
.BI "int fseek(FILE *" stream ", long " offset ", int " whence );
-.br
+.PP
.BI "long ftell(FILE *" stream );
-.br
+.PP
.BI "void rewind(FILE *" stream );
-.br
+.PP
.BI "int fgetpos(FILE *" stream ", fpos_t *" pos );
-.br
-.BI "int fsetpos(FILE *" stream ", fpos_t *" pos );
+.PP
+.BI "int fsetpos(FILE *" stream ", const fpos_t *" pos );
.SH DESCRIPTION
The
.BR fseek ()
or
.BR 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
+indicator, or end-of-file, respectively.
+A successful call to the
.BR fseek ()
function clears the end-of-file indicator for the stream and undoes
any effects of the
.BR rewind ()
function sets the file position indicator for the stream pointed to by
.I stream
-to the beginning of the file. It is equivalent to:
+to the beginning of the file.
+It is equivalent to:
.PP
.RS
-(void)fseek(stream, 0L, SEEK_SET)
+(void) fseek(stream, 0L, SEEK_SET)
.RE
.PP
except that the error indicator for the stream is also cleared (see
.BR ftell ()
and
.BR fseek ()
-(with whence set to
+(with
+.I whence
+set to
.BR SEEK_SET ),
setting and storing the current value of the file offset into or from the
object referenced by
.IR pos .
-On some non-UNIX systems an
-.B fpos_t
+On some non-UNIX systems, an
+.I fpos_t
object may be a complex object and these routines may be the only way to
portably reposition a text stream.
-.SH "RETURN VALUE"
+.SH RETURN VALUE
The
.BR rewind ()
-function returns no value. Upon successful completion,
+function returns no value.
+Upon successful completion,
.BR fgetpos (),
.BR fseek (),
.BR fsetpos ()
return 0,
and
.BR ftell ()
-returns the current offset. Otherwise, \-1 is returned and the global
-variable errno is set to indicate the error.
+returns the current offset.
+Otherwise, \-1 is returned and
+.I errno
+is set to indicate the error.
.SH ERRORS
.TP
-.B EBADF
-The
-.I stream
-specified is not a seekable stream.
-.TP
.B EINVAL
The
.I whence
-argument to
+argument to
.BR fseek ()
was not
.BR SEEK_SET ,
.BR SEEK_END ,
or
.BR SEEK_CUR .
+Or: the resulting file offset would be negative.
+.TP
+.B ESPIPE
+The file descriptor underlying
+.I stream
+is not seekable (e.g., it refers to a pipe, FIFO, or socket).
.PP
-The function
+The functions
.BR fgetpos (),
.BR fseek (),
.BR fsetpos (),
-and
+and
.BR ftell ()
may also fail and set
.I errno
.BR fflush (3),
.BR fstat (2),
.BR lseek (2),
-and
+and
.BR malloc (3).
-.SH "CONFORMING TO"
-The
-.BR fgetpos (),
-.BR fsetpos (),
+.SH ATTRIBUTES
+For an explanation of the terms used in this section, see
+.BR attributes (7).
+.TS
+allbox;
+lbw27 lb lb
+l l l.
+Interface Attribute Value
+T{
.BR fseek (),
.BR ftell (),
-and
-.BR rewind ()
-functions conform to ANSI X3.159-1989 (``ANSI C'').
-.SH "SEE ALSO"
+.BR rewind (),
+.br
+.BR fgetpos (),
+.BR fsetpos ()
+T} Thread safety MT-Safe
+.TE
+.sp 1
+.SH CONFORMING TO
+POSIX.1-2001, POSIX.1-2008, C89, C99.
+.SH SEE ALSO
.BR lseek (2),
.BR fseeko (3)