g++ newbie prblem - gcc-3.0.3 vs gcc-2.95.3
Hillel (Sabba) Markowitz
Sabba.Hillel@verizon.net
Sat Jan 19 16:44:00 GMT 2002
Claudio Bley wrote:
>
> >>>>> "Hillel" == Hillel (Sabba) Markowitz <sabbahem@bcpl.net> writes:
>
> Hillel> The following program builds and runs fine under 2.95.3
> Hillel> but does not compile under gcc-3.0.3 As a g++ newbie I
> Hillel> must be doing something very obvious wrong.
>
> Hillel> Please respond via e-mail as I do not usually have access
> Hillel> to the mailing list archive.
>
> Hillel> #include <stdio.h> #include <stdlib.h> #include
> Hillel> <iostream.h> #include <fstream.h> #include <unistd.h>
> Hillel> main() { ofstream *fout = new ofstream (dup(1)); *fout <<
> Hillel> "Hello World\n"; }
>
> [snip]
>
> The C++ Standard does *not* specify a facility to assign a file
> descriptor to a file stream because file descriptors are OS dependent.
>
> If you want to redirect standard I/O channels you should assign the
> stream buffers of stream objects to each other:
>
> ostream ostr(0);
> ostr.rdbuf (cout.rdbuf ());
>
> Claudio
Thank you for your response. I tried your suggestion and it does work.
However, we need to be able to outprint the results of fprintf to stderr
(legacy code already written). If the user specifies on the command
line that he wants to use a log file instead of stderr, then we want to
close the stderr and open the log file. In the command line parser we
have
close(2);
fopen(logFile, "w"):
>From that point on, all fprintf(stderr, "..."); calls will be written to
the log file (or the screen if the command line switch did not trigger
the close and reopen.
g++-2.95.3 implemented this correctly, but g++3.0.3 do not. Is there a
recommended way to code this.
I would prefer not to have to change all the fprintf legacy code if I
can avoid it. It would be preferable if the code change also handled
cerr<< ...; as well as this is a mixed c, c++ set of routines and has
both legacy and new code. However, the main question is with the
fprintf.
As before, please respond to sabbahem@bcpl.net or
Sabba.Hillel@verizon.net as I do not have reliable access to the mailing
list.
--
Said the fox to the fish, "Join me ashore".
The fish are the Jews, Torah is our water.
Hillel (Sabba) Markowitz
sabbahem@bcpl.net, Sabba.Hillel@verizon.net
More information about the Gcc-help
mailing list