Le 17/02/2016 20:12, Michael D. Berger a écrit : > I wrote a program using libnetfilter_queue. Call it "tst". > It normally runs as a service, but when I am debugging it, I > put some printf statements in it and run it in the foreground > by typing: > > tst > > and the printf results appear on the screen as expected. However, > if I expect a long output, I would rather type: > > tst > log > > hoping to see the results in the file "log". However, "log" is > always empty, even though I have other indications that "tst" is > running. > > Why is this? Is there anything I could do to get the printf > results to appear in "log"? > Not related to netfilter but only C, anyway... when the output is a file, printf (to stdout) is block buffered instead of line buffered for a terminal. You'd need more output to fill the first block. Check the man pages of fflush(3) and setvbuf(3) to know how to have it as you expect. According to these man pages if you were using stderr (with fprintf() ) it would be already unbuffered and tst 2>log would "work". > Thanks, > Mike. > > -- > Michael D. Berger > m.d.berger@xxxxxxxx > http://www.rosemike.net/ > regards, Adel Belhouane. -- To unsubscribe from this list: send the line "unsubscribe netfilter" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html