c++ - fdopen bug
- M (36/36) Sep 16 2006 Here is a small C program who does not work
Here is a small C program who does not work when compiled with Digital Mars C/C++ Compiler Version 8.49.4n It does run Ok with VC 6.0 gcc (MingW and Cygwin) Watcom lcc-win32 I think it should work with DMC. --- result execution --- fileno(stdin): 0040A180 0 fileno(stdout): 0040A1A0 1 fileno(stderr): 0040A1C0 2 Assertion failure: 'fp' on line 17 in file '0.c' abnormal program termination --- program --- #include <stdio.h> #include <io.h> #include <fcntl.h> #include <assert.h> #include <stdlib.h> #ifdef __CYGWIN__ #include <unistd.h> #endif int main( ) { FILE *fp; int fd; fprintf( stderr, "fileno(stdin): %p %d\n", stdin, fileno(stdin) ); fprintf( stderr, "fileno(stdout): %p %d\n", stdout, fileno(stdout) ); fprintf( stderr, "fileno(stderr): %p %d\n", stderr, fileno(stderr) ); fd = fileno(stdout); assert(fd!=-1); fp = fdopen(fd,"w"); assert(fp); fprintf(fp, "Ok.\n"); fclose(fp); return 0; }
Sep 16 2006