Why does it always throw stderr ? Kindly help...
#include <stdio.h>
#include <unistd.h>
int main()
{
while(1)
{
fprintf(stdout,"hello-out");
fprintf(stderr,"hello-err");
sleep(1);
}
return 0;
}
thanks, robin.
|
Mentor
|
![]() |
| 11Aug2008,04:18 | #2 |
|
What do you mean by "throw stderr"? What is the output from your program, and what are you expecting it to do?
I changed it slightly (while(1) -> for (int i=0; i<5; i++)), built and ran it in Visual Studio 2005 (without the sleep() call either cos I couldn't find where this was displayed) and the output was: hello-out hello-err hello-out hello-err hello-out hello-err hello-out hello-err hello-out hello-err - as you see, displaying both hello-out and hello-err. If you change it from while(1) to a short loop, what is the output then? |
|
Newbie Member
|
|
| 11Aug2008,04:45 | #3 |
|
Thats fine if you test with a finite for loop. but why is it first printing set of hello-err ? should it not print hello-out and then hello-err?
#include <stdio.h> #include <unistd.h> int main() { for(int i=0;i<5;i++) { fprintf(stdout,"hello-out"); fprintf(stderr,"hello-err"); // sleep(1); } return 0; } output: hello-errhello-errhello-errhello-errhello-errhello-outhello-outhello-outhello-outhello-out expected (??) : hello-out hello-err hello-out hello-err hello-out hello-err hello-out hello-err hello-out hello-err Just wanted to understand how the streams are interpreted by the compilers. |
|
Skilled contributor
|
|
| 11Aug2008,10:53 | #4 |
|
This is Not Correct Section for That Go to C/C++ Section for making this.
|
|
Go4Expert Founder
|
![]() |
| 11Aug2008,12:53 | #5 |
|
Moved to C-C++ forum.
|
|
Mentor
|
![]() |
| 11Aug2008,14:31 | #6 |
|
It probably depends on how streams work on your platform. What are you using? (If you're not sure show me the output of uname -a)
Try adding fflush(stream-name); after each printf and see what happens, i.e.: fprintf(stdout,"hello-out\n"); fflush(stdout); fprintf(stderr,"hello-err\n"); fflush(stderr); Output is often buffered rather than printed immediately so this could be the cause of the behaviour. |


