I have a long running batch process that outputs some debug and process information to stdout.
If I just run from a terminal I can keep track of 'where it is' but then the data gets too much and scrolls off the screen.
If I redirect to output to a file '> out.txt' I get the whole output eventually but it is buffered so I can no longer see what it is doing right now.
Is there a way to redirect the output but make it not buffer its writes?
Best Answer
You can explicitly set the buffering options of the standard streams using a
setvbuf
call in C (see this link), but if you're trying to modify the behaviour of an existing program trystdbuf
(part ofcoreutils
starting with version 7.5 apparently).This buffers
stdout
up to a line:This disables
stdout
buffering altogether: