gzdopen -- open a compressed file


#include <zlib.h>

gzFile gzdopen ( int fd, const char *mode );


The gzdopen() function shall attempt to associate the open file referenced by fd with a gzFile object. The mode argument is based on that of fopen(), but the mode parameter may also contain the following characters:


set the compression level to digit. A low value (e.g. 1) means high speed, while a high value (e.g. 9) means high compression. A compression level of 0 (zero) means no compression. See deflateInit2_() for further details.


set the compression strategy to [fhR]. The letter f corresponds to filtered data, the letter h corresponds to Huffman only compression, and the letter R corresponds to Run Length Encoding. See deflateInit2_() for further details.

If fd refers to an uncompressed file, and mode refers to a read mode, gzdopen() shall attempt to open the file and return a gzFile object suitable for reading directly from the file without any decompression.

If mode is NULL, or if mode does not contain one of r, w, or a, gzdopen() shall return Z_NULL, and need not set any other error condition.


gzdopen(fileno(stdin), "r");
Attempt to associate the standard input with a gzFile object.

Return Value

On success, gzdopen() shall return a gzFile object. On failure, gzdopen() shall return Z_NULL and may set errno accordingly.

Note: At version 1.2.2, zlib does not set errno for several error conditions. Applications may not be able to determine the cause of an error.


On error, gzdopen() may set the global variable errno to indicate the error.