Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-dev] The old problem of buffering in the console (Windows)

Changing the code so it could work in Eclipse is a horrible solution.
Also, this solution does help in the following case:

#include <stdio.h>

int main(void) {
      setvbuf(stdout, NULL, _IONBF, 0);
      setvbuf(stderr, NULL, _IONBF, 0);
      fprintf(stderr,"stderr\n");
      fprintf(stdout,"stdout\n");
      return 0;
}


You will have both possible outputs:
stderr
stdout
or:
stdout
stderr

This is enough to convince all but the strong-hearted programmers to revert to Visual.

I will look at the bug suggested and see if I could apply some kind of a real fix.

-Omer

On Wed, Mar 31, 2010 at 4:02 PM, Marc Khouzam <marc.khouzam@xxxxxxxxxxxx> wrote:
I don't understand your request.
You mention a buffering problem, which you seem to have a solution for,
but then you mention mixed stdout and stderr, which does not seem releated
to the buffering issue.
 
What would you like to solve?
 
Marc
 


From: cdt-dev-bounces@xxxxxxxxxxx [mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Omer Strulovich
Sent: Wednesday, March 31, 2010 8:32 AM
To: CDT General developers list.
Subject: [cdt-dev] The old problem of buffering in the console (Windows)

If you've used Eclipse CDT on Windows you know that the Eclipse console has buffering problems.
Basically, it doesn't flush the streams when a newline is received. (Unlike a normal windows console window)
Until lately I used to either add fflush calls when needed or add the following lines in the start of the main function:
setvbuf(stdout, NULL, _IONBF, 0);
setvbuf(stderr, NULL, _IONBF, 0);

Since we're using Eclipse CDT as the recommended IDE for a software development course I need some solution or workaround to allow my students work on CDT.
Having mixed stdout & stderr is unacceptable for a programming newbie. (Seriously, this bug is probably preventing hundred of new C/C++ programmers working on windows from seriously using Eclipse instead of Visual)

I would love if someone could help me with a workaround.
Or even better, direct me to the right piece of code in Eclipse where I can solve this problem myself and be done with it. (I have the time and necessary skills)

-Omer

_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev



Back to the top