.\" 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 "GNU" "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 ()
.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
+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.
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
.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 functions
.BR fgetpos (),
.BR lseek (2),
and
.BR malloc (3).
-.SH "CONFORMING TO"
-C89, C99.
-.SH "SEE ALSO"
+.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 (),
+.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)