Loading...
--- Libc/Libc-262/stdio/fseek.3
+++ Libc/Libc-583/stdio/fseek.3
@@ -34,9 +34,9 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)fseek.3 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD: src/lib/libc/stdio/fseek.3,v 1.19 2001/10/01 16:08:59 ru Exp $
-.\"
-.Dd March 5, 1999
+.\" $FreeBSD: src/lib/libc/stdio/fseek.3,v 1.25 2004/03/20 08:38:27 tjr Exp $
+.\"
+.Dd March 19, 2004
.Dt FSEEK 3
.Os
.Sh NAME
@@ -53,20 +53,39 @@
.Sh SYNOPSIS
.In stdio.h
.Ft int
-.Fn fseek "FILE *stream" "long offset" "int whence"
+.Fo fgetpos
+.Fa "FILE *restrict stream"
+.Fa "fpos_t *restrict pos"
+.Fc
+.Ft int
+.Fo fseek
+.Fa "FILE *stream"
+.Fa "long offset"
+.Fa "int whence"
+.Fc
+.Ft int
+.Fo fseeko
+.Fa "FILE *stream"
+.Fa "off_t offset"
+.Fa "int whence"
+.Fc
+.Ft int
+.Fo fsetpos
+.Fa "FILE *stream"
+.Fa "const fpos_t *pos"
+.Fc
.Ft long
-.Fn ftell "FILE *stream"
+.Fo ftell
+.Fa "FILE *stream"
+.Fc
+.Ft off_t
+.Fo ftello
+.Fa "FILE *stream"
+.Fc
.Ft void
-.Fn rewind "FILE *stream"
-.Ft int
-.Fn fgetpos "FILE *stream" "fpos_t *pos"
-.Ft int
-.Fn fsetpos "FILE *stream" "const fpos_t *pos"
-.In sys/types.h
-.Ft int
-.Fn fseeko "FILE *stream" "off_t offset" "int whence"
-.Ft off_t
-.Fn ftello "FILE *stream"
+.Fo rewind
+.Fa "FILE *stream"
+.Fc
.Sh DESCRIPTION
The
.Fn fseek
@@ -92,7 +111,9 @@
function clears the end-of-file indicator for the stream and undoes
any effects of the
.Xr ungetc 3
-function on the same stream.
+and
+.Xr ungetwc 3
+functions on the same stream.
.Pp
The
.Fn ftell
@@ -147,21 +168,37 @@
and
.Fn fsetpos
functions
-are alternate interfaces equivalent to
+are alternate interfaces for retrieving and setting the current position in
+the file, similar to
.Fn ftell
and
-.Fn fseek
-(with whence set to
-.Dv SEEK_SET ) ,
-setting and storing the current value of
-the file offset into or from the object referenced by
+.Fn fseek ,
+except that the current position is stored in an opaque object of
+type
+.Vt fpos_t
+pointed to by
.Fa pos .
-On some
-.Pq non- Ns Tn UNIX
-systems an
-.Dq Fa fpos_t
-object may be a complex object
-and these routines may be the only way to portably reposition a text stream.
+These functions provide a portable way to seek to offsets larger than
+those that can be represented by a
+.Vt long int .
+They may also store additional state information in the
+.Vt fpos_t
+object to facilitate seeking within files containing multibyte
+characters with state-dependent encodings.
+Although
+.Vt fpos_t
+has traditionally been an integral type,
+applications cannot assume that it is;
+in particular, they must not perform arithmetic on objects
+of this type.
+.Pp
+If the stream is a wide character stream (see
+.Xr fwide 3 ) ,
+the position specified by the combination of
+.Fa offset
+and
+.Fa whence
+must contain the first byte of a multibyte sequence.
.Sh RETURN VALUES
The
.Fn rewind
@@ -183,7 +220,7 @@
.It Bq Er EBADF
The
.Fa stream
-specified
+argument
is not a seekable stream.
.It Bq Er EINVAL
The
@@ -228,10 +265,29 @@
.Xr lseek 2 ,
and
.Xr malloc 3 .
+.Sh LEGACY SYNOPSIS
+.Fd #include <stdio.h>
+.Fd #include <sys/types.h>
+.Pp
+.Ft int
+.br
+.Fo fseeko
+.Fa "FILE *stream"
+.Fa "off_t offset"
+.Fa "int whence"
+.Fc ;
+.Pp
+The include file
+.In sys/types.h
+supplies the definition for
+.Vt off_t .
.Sh SEE ALSO
.Xr lseek 2 ,
.Xr clearerr 3 ,
-.Xr ungetc 3
+.Xr fwide 3 ,
+.Xr ungetc 3 ,
+.Xr ungetwc 3 ,
+.Xr compat 5
.Sh STANDARDS
The
.Fn fgetpos ,
@@ -249,4 +305,4 @@
and
.Fn ftello
functions conform to
-.St -susv2 .
+.St -p1003.1-2001 .