xref: /freebsd/usr.bin/compress/zopen.3 (revision d82e286489da73321a47e329d98a98817b0438b6)
1.\" Copyright (c) 1992, 1993
2.\"	The Regents of the University of California.  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.\" 3. All advertising materials mentioning features or use of this software
13.\"    must display the following acknowledgement:
14.\"	This product includes software developed by the University of
15.\"	California, Berkeley and its contributors.
16.\" 4. Neither the name of the University nor the names of its contributors
17.\"    may be used to endorse or promote products derived from this software
18.\"    without specific prior written permission.
19.\"
20.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
21.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
24.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30.\" SUCH DAMAGE.
31.\"
32.\"	@(#)zopen.3	8.1 (Berkeley) 6/9/93
33.\"
34.Dd June 9, 1993
35.Dt ZOPEN 3
36.Os
37.Sh NAME
38.Nm zopen
39.Nd compressed stream open function
40.Sh SYNOPSIS
41.Fd #include <stdio.h>
42.Ft FILE *
43.Fn zopen "const char *path" "const char *mode" "int bits"
44.Sh DESCRIPTION
45The
46.Fn zopen
47function
48opens the compressed file whose name is the string pointed to by
49.Fa path
50and associates a stream with it.
51.Pp
52The argument
53.Fa mode
54points to one of the following one-character strings:
55.Bl -tag -width indent
56.It Dq Li r
57Open compressed file for reading.
58The stream is positioned at the beginning of the file.
59.It Dq Li w
60Truncate file to zero length or create compressed file for writing.
61The stream is positioned at the beginning of the file.
62.El
63.Pp
64Any created files will have mode
65.Pf \\*q Dv S_IRUSR
66\&|
67.Dv S_IWUSR
68\&|
69.Dv S_IRGRP
70\&|
71.Dv S_IWGRP
72\&|
73.Dv S_IROTH
74\&|
75.Dv S_IWOTH Ns \\*q
76.Pq Li 0666 ,
77as modified by the process'
78umask value (see
79.Xr umask 2 ) .
80.Pp
81Files may only be read or written.
82Seek operations are not allowed.
83.Pp
84The
85.Fa bits
86argument, if non-zero, is set to the bits code limit.
87If zero, the default is 16.
88See
89.Fn compress 1
90for more information.
91.Sh RETURN VALUES
92Upon successful completion
93.Fn zopen
94returns a
95.Tn FILE
96pointer.
97Otherwise,
98.Dv NULL
99is returned and the global variable
100.Va errno
101is set to indicate the error.
102.Sh ERRORS
103.Bl -tag -width [EINVAL]
104.It Bq Er EINVAL
105The
106.Fa mode
107or
108.Fa bits
109arguments specified to
110.Fn zopen
111were invalid.
112.It Bq Er EFTYPE
113The compressed file starts with an invalid header, or the compressed
114file is compressed with more bits than can be handled.
115.El
116.Pp
117The
118.Fn zopen
119function may also fail and set
120.Va errno
121for any of the errors specified for the routines
122.Xr fopen 3
123or
124.Xr funopen 3 .
125.Sh SEE ALSO
126.Xr compress 1 ,
127.Xr fopen 3 ,
128.Xr funopen 3
129.Sh HISTORY
130The
131.Nm zopen
132function
133first appeared in 4.4BSD.
134.Sh BUGS
135The
136.Fn zopen
137function
138may not be portable to systems other than
139.Bx .
140