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