zlib - gzread fails after successful gzdopen on mswin32 -


there seems broken in windows build zlib 1.2.8. according usage.txt in http://zlib.net/zlib128-dll.zip (from zlib.net) , man pages gzread , gzdopen, code should work. can enlighten me, please? btw, have tested code on darwin (using zlib 1.2.5) , linux (using zlib 1.2.1) gzdopen works.

here's code:

#include <stdio.h> #include <stdlib.h> #include <string.h> #include <fcntl.h> #include "zlib.h"  int main(int argc, char *argv[]) {         char            buffer[500];         int             len;         gzfile          gin;         const char      *errmsg;         int             errnum;         char            *fun      = argv[1];         char            *filename = argv[2];         printf("fun: %s filename: %s\n", fun, filename);         printf("zlib version: %s\n", zlibversion());         if (!strcmp(fun, "gzdopen")) {                 int fd = open(filename, o_rdonly);                 printf("open returned %d\n", fd);                 gin = gzdopen(fd, "rb");         }         if (!strcmp(fun, "gzopen"))                 gin = gzopen(filename, "rb");         printf("gzopen returned %p\n", gin);         len = gzread(gin, buffer, sizeof(buffer));         fprintf(stderr, "gzread() returned %d\n", len);         errmsg = gzerror(gin, &errnum);         fprintf(stderr, "gzerror() returned '%s'; errnum=%d\n", errmsg, errnum);         return 0; } 

and here's did:

c:\decompress> cl test.c /iinclude lib/zdll.lib microsoft (r) 32-bit c/c++ optimizing compiler version 12.00.8804 80x86 copyright (c) microsoft corp 1984-1998. rights reserved.  test.c microsoft (r) incremental linker version 6.00.8447 copyright (c) microsoft corp 1992-1998. rights reserved.  c:\decompress> gzip -c < test.c > test.c.gz  c:\decompress>test gzdopen test.c.gz fun: gzdopen filename: test.c.gz zlib version: 1.2.8 open returned 3 gzopen returned 00332ce0 gzread() returned -1 gzerror() returned '<fd:3>: bad file descriptor'; errnum=-1  c:\decompress>test gzopen test.c.gz fun: gzopen filename: test.c.gz zlib version: 1.2.8 gzopen returned 00332cc0 gzread() returned 500 gzerror() returned ''; errnum=0 


Comments

Popular posts from this blog

php - SPIP: From Tag directly to an article -

jquery - isAjaxRequest always return false -

ruby on rails - In a controller spec, how to find a specific tag in the generated view? -