*BSD News Article 77740


Return to BSD News archive

Path: euryale.cc.adfa.oz.au!newshost.carno.net.au!harbinger.cc.monash.edu.au!news.rmit.EDU.AU!news.unimelb.EDU.AU!munnari.OZ.AU!news.ecn.uoknor.edu!news.wildstar.net!news.sdsmt.edu!news.mid.net!mr.net!www.nntp.primenet.com!nntp.primenet.com!cs.utexas.edu!howland.erols.net!newsfeed.internetmci.com!news.infinet.com!ao
From: ao@infinet.com (Mike Harrold)
Newsgroups: comp.unix.bsd.freebsd.misc,gnu.g++.help
Subject: Re: g++2.7.2 error on freebsd
Date: 8 Sep 1996 01:52:01 GMT
Organization: InfiNet
Lines: 43
Distribution: world
Message-ID: <50t8s1$lhr@news1.infinet.com>
References: <8414360547401@maverick.mcs.anl.gov> <50ee1f$dp@anorak.coverform.lan>
NNTP-Posting-Host: user2.infinet.com
X-Newsreader: TIN [version 1.2 PL2]
Xref: euryale.cc.adfa.oz.au comp.unix.bsd.freebsd.misc:26807 gnu.g++.help:13242

Brian Somers (brian@awfulhak.demon.co.uk) wrote:
: Satish Balay (balay@maverick.mcs.anl.gov) wrote:

[snip]

: Hmm, it couldn't work correctly - it doesn't close fp - or check to see if
: it actually opened "x".  And why is it flushing stdout ?

: The correct code, I suspect, is:

: #include <stdio.h>
: #include <stdarg.h>
: #include <stdlib.h>

: int NewPrintf( char *format, ... )
: {
:   int rank;
:   va_list Argp;
:   FILE *fp;

:   if( fp = fopen( "x", "w" ), !fp )
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

ARGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH! :-)

:     return 1;
:   va_start( Argp, format );
:   vfprintf( fp, (char *)format, Argp ); 
:   va_end( Argp );
:   fclose( fp );
:   return 0;
: }

I have simpler questions... why is he using FILEs? Why is he using C header
files (eg <stdlib.h>) and not C++ header files (eg <cstdlib>)?

/Mike

--
+--------------------------------------------------------------------------+
| Take the cheese to sickbay, the Doctor should take a look at it as soon  |
| as possible.  --  B'lanna Torres - Star Trek Voyager - 'Learning Curve'. |
+--------------------------------------------------------------------------+