xref: /freebsd/lib/libz/zopen.3 (revision d933e97f9d7c919e68dc6aca4a6819a13ab3fbbf)
1.\" Copyright (c) 2014 Xin Li <delphij@FreeBSD.org>
2.\" All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\"    notice, this list of conditions and the following disclaimer.
9.\" 2. Redistributions in binary form must reproduce the above copyright
10.\"    notice, this list of conditions and the following disclaimer in the
11.\"    documentation and/or other materials provided with the distribution.
12.\"
13.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23.\" SUCH DAMAGE.
24.\"
25.\" $FreeBSD$
26.\"
27.Dd March 5, 2014
28.Dt ZOPEN 3
29.Os
30.Sh NAME
31.Nm zopen
32.Nd open a gzip compressed stream
33.Sh LIBRARY
34.Lb libz
35.Sh SYNOPSIS
36.Ft FILE *
37.Fn zopen "const char *path" "const char *mode"
38.Sh DESCRIPTION
39The
40.Fn zopen
41opens a gzip file whose name is the string pointed to by
42.Fa path
43and associates a stream with it.
44It is a wrapper around
45.Xr zlib 3
46and standard stream I/O APIs.
47.Pp
48The argument
49.Fa mode
50have the same meaning as it does in
51.Xr fopen 3 .
52.Pp
53The
54.Nm
55function will associate read, write, seek and close
56functions of
57.Xr zlib 3
58after successfully opened a file with
59.Xr funopen 3
60so that they will be used to read or write the new stream.
61.Sh RETURN VALUES
62Upon successful completion
63.Nm
64returns a
65.Tn FILE
66pointer.
67Otherwise,
68.Dv NULL
69is returned and the global variable
70.Va errno
71is set to indicate the error.
72.Sh ERRORS
73In addition to the errors documented for
74.Xr fopen 3 ,
75the
76.Nm
77function may also fail for:
78.Bl -tag -width Er
79.It Bq Er ENOMEM
80Insufficient memory is available.
81.El
82.Sh COMPATIBILITY
83This implementation of
84.Nm
85function first appeared in
86.Nx 1.6
87and
88.Fx 4.5 .
89The
90.Nm
91function may not be portable to systems other than
92.Fx .
93.Sh SEE ALSO
94.Xr fopen 3 ,
95.Xr funopen 3 ,
96.Xr zlib 3
97