tag 12975 + notabug close 12975 thanks liyu wrote: > There is a issue puzzling me.
We welcome your discussion but in the future please post discussion questions to [email protected] and not to the bug tracker. Thanks. > When I use the "tee" command, the log of a.out will lose if I use > "ctrl+c" to kill it. Thank you for posting the details of your question with all of the steps needed to reproduce the issue. It helps a lot and most people don't do as well with it. > In step (3), before 6 sec input "ctrl + c", the log will lose. > I want to know how to let the log collect real-timely. You are running into libc stdio buffering. Normally the libc stdio called through printf(3) will collect up output and then output it all at once, if the output device is not a terminal device. This improves performance for most applications. But since you are piping the output to tee the output is buffered and it is still in the memory of your program. When you interrupt it with SIGINT via control-C the program exits and never writes the buffer to the output. This doesn't have anything to do with tee but is all within the component of your program that is writing the output. Rather than go into all of the details in this email let me point you to a nice web page with much discussion about exactly this issue. Please read through this. http://www.pixelbeat.org/programming/stdio_buffering/ Please let us know if this answers your questions. Just group follow-up reply-all to this message so as to keep the bug log in the recipient list. Bob
