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