about summary refs log tree commit diff homepage
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rw-r--r--gzseek.370
2 files changed, 72 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index 0518b4b..45081d8 100644
--- a/Makefile
+++ b/Makefile
@@ -29,6 +29,7 @@ MAN += gzprintf.3
 MAN += gzputc.3
 MAN += gzputs.3
 MAN += gzread.3
+MAN += gzseek.3
 MAN += gzsetparams.3
 MAN += gzungetc.3
 MAN += gzwrite.3
@@ -55,6 +56,7 @@ MLINKS += adler32.3 adler32_z.3
 MLINKS += compress.3 compress2.3
 MLINKS += crc32.3 crc32_z.3
 MLINKS += gzopen.3 gzdopen.3
+MLINKS += gzseek.3 gzrewind.3
 MLINKS += inflateReset.3 inflateReset2.3
 MLINKS += uncompress.3 uncompress2.3
 
diff --git a/gzseek.3 b/gzseek.3
new file mode 100644
index 0000000..cf1bc71
--- /dev/null
+++ b/gzseek.3
@@ -0,0 +1,70 @@
+.Dd November 13, 2018
+.Dt GZSEEK 3
+.Os
+.
+.Sh NAME
+.Nm gzseek ,
+.Nm gzrewind
+.Nd seek compressed file
+.
+.Sh LIBRARY
+.Lb libz
+.
+.Sh SYNOPSIS
+.In zlib.h
+.Ft z_off_t
+.Fn gzseek "gzFile file" "z_off_t offset" "int whence"
+.Ft int
+.Fn gzrewind "gzFile file"
+.
+.Sh DESCRIPTION
+Sets the starting position
+for the next
+.Xr gzread 3
+or
+.Xr gzwrite 3
+on the given compressed file.
+The
+.Fa offset
+represents a number of bytes
+in the uncompressed data stream.
+The
+.Fa whence
+parameter
+is defined as in
+.Xr lseek 2 ;
+the value
+.Dv SEEK_END
+is not supported.
+.
+.Pp
+If the file is opened for reading,
+this function is emulated
+but can be extremely slow.
+If the file is opened for writing,
+only forward seeks are supported;
+.Fn gzseek
+then compresses a sequence of zeroes
+up to the new starting position.
+.
+.Pp
+.Fn gzrewind
+rewinds the given file.
+This function is supported
+only for reading.
+.
+.Pp
+.Fn gzrewind file
+is equivalent to
+.Li (int) Ns Fn gzseek file 0L SEEK_SET .
+.
+.Sh RETURN VALUES
+.Fn gzseek
+returns the resulting offset location
+as measured in bytes
+from the beginning of the uncompressed stream,
+or -1 in case of error,
+in particular if the file
+is opened for writing
+and the new starting position
+would be before the current position.