Loading...
stdio/fseek.3 Libc-262 Libc-583
--- 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 .