Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F106010871
D18456.id51679.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
D18456.id51679.diff
View Options
Index: lib/libz/Makefile
===================================================================
--- lib/libz/Makefile
+++ lib/libz/Makefile
@@ -7,6 +7,7 @@
SHLIBDIR?= /lib
SHLIB_MAJOR= 6
MAN= zlib.3 zopen.3
+MLINKS+= zopen.3 zdopen.3
ZLIBSRC= ${SRCTOP}/contrib/zlib
Index: lib/libz/Symbol.map
===================================================================
--- lib/libz/Symbol.map
+++ lib/libz/Symbol.map
@@ -103,6 +103,10 @@
zopen;
};
+FBSD_1.6 {
+ zdopen;
+};
+
ZLIBprivate_1.0 {
_tr_align;
_tr_flush_block;
Index: lib/libz/Versions.def
===================================================================
--- lib/libz/Versions.def
+++ lib/libz/Versions.def
@@ -15,6 +15,9 @@
FBSD_1.2 {
} ZLIB_1.2.4.0;
+FBSD_1.6 {
+} FBSD_1.2;
+
ZLIBprivate_1.0 {
} ZLIB_1.2.4.0;
Index: lib/libz/zopen.3
===================================================================
--- lib/libz/zopen.3
+++ lib/libz/zopen.3
@@ -23,7 +23,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd March 5, 2014
+.Dd December 6, 2018
.Dt ZOPEN 3
.Os
.Sh NAME
@@ -34,33 +34,44 @@
.Sh SYNOPSIS
.Ft FILE *
.Fn zopen "const char *path" "const char *mode"
+.Ft FILE *
+.Fn zdopen "int fd" "const char *mode"
.Sh DESCRIPTION
The
.Fn zopen
-opens a gzip file whose name is the string pointed to by
+function opens a gzip file whose name is the string pointed to by
.Fa path
-and associates a stream with it.
-It is a wrapper around
+and returns a stream which can be used to access the uncompressed contents
+of the file.
+The
+.Fn zdopen
+variant takes a gzip file referenced by the file descriptor
+.Fa fd ,
+analogous to
+.Xr fdopen 3 .
+They are wrappers around
.Xr zlib 3
-and standard stream I/O APIs.
+and the standard stream I/O APIs.
.Pp
The argument
.Fa mode
-have the same meaning as it does in
+has the same meaning as it does in
.Xr fopen 3 .
.Pp
The
-.Nm
-function will associate read, write, seek and close
+.Fn zopen
+and
+.Fn zdopen
+functions will associate the read, write, seek and close
functions of
.Xr zlib 3
-after successfully opened a file with
-.Xr funopen 3
-so that they will be used to read or write the new stream.
+with the returned stream.
.Sh RETURN VALUES
Upon successful completion
-.Nm
-returns a
+.Fn zopen
+and
+.Fn zdopen
+return a
.Tn FILE
pointer.
Otherwise,
@@ -70,26 +81,28 @@
is set to indicate the error.
.Sh ERRORS
In addition to the errors documented for
-.Xr fopen 3 ,
-the
-.Nm
-function may also fail for:
+.Xr fopen 3
+and
+.Xr fdopen 3 ,
+the functions may also fail for:
.Bl -tag -width Er
.It Bq Er ENOMEM
Insufficient memory is available.
.El
.Sh COMPATIBILITY
-This implementation of
-.Nm
+The implementation of
+.Fn zopen
function first appeared in
.Nx 1.6
and
.Fx 4.5 .
-The
-.Nm
-function may not be portable to systems other than
+.Fn zdopen
+first appeared in
+.Fx 12.1 .
+These functions may not be portable to systems other than
.Fx .
.Sh SEE ALSO
+.Xr fdopen 3 ,
.Xr fopen 3 ,
.Xr funopen 3 ,
.Xr zlib 3
Index: lib/libz/zopen.c
===================================================================
--- lib/libz/zopen.c
+++ lib/libz/zopen.c
@@ -9,6 +9,7 @@
#include <zlib.h>
FILE *zopen(const char *fname, const char *mode);
+FILE *zdopen(int fd, const char *mode);
/* convert arguments */
static int
@@ -47,3 +48,18 @@
else
return (funopen(gz, NULL, xgzwrite, xgzseek, xgzclose));
}
+
+FILE *
+zdopen(int fd, const char *mode)
+{
+ gzFile gz;
+
+ gz = gzdopen(fd, mode);
+ if (gz == NULL)
+ return (NULL);
+
+ if (*mode == 'r')
+ return (funopen(gz, xgzread, NULL, xgzseek, xgzclose));
+ else
+ return (funopen(gz, NULL, xgzwrite, xgzseek, xgzclose));
+}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Dec 24, 9:12 PM (15 h, 49 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
15591088
Default Alt Text
D18456.id51679.diff (3 KB)
Attached To
Mode
D18456: Add zdopen(), for use in capability mode.
Attached
Detach File
Event Timeline
Log In to Comment