From: David Herrmann Date: Sat, 4 Jul 2015 10:11:22 +0000 (+0200) Subject: busctl: flush stdout after dumping data X-Git-Tag: v226.4~1^2~233 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=260ec60412d6488016a39c8f8ee58273e2514ab1 busctl: flush stdout after dumping data Running `busctl monitor` currently buffers data for several seconds / kilobytes before writing stdout. This is highly confusing if you dump in a file, ^C busctl and then end up with a file with data of the last few _seconds_ missing. Fix this by explicitly flushing after each signal. --- diff --git a/src/libelogind/sd-bus/busctl.c b/src/libelogind/sd-bus/busctl.c index 704939c6c..6aaaf0e5e 100644 --- a/src/libelogind/sd-bus/busctl.c +++ b/src/libelogind/sd-bus/busctl.c @@ -1137,6 +1137,7 @@ static int monitor(sd_bus *bus, char *argv[], int (*dump)(sd_bus_message *m, FIL if (m) { dump(m, stdout); + fflush(stdout); if (sd_bus_message_is_signal(m, "org.freedesktop.DBus.Local", "Disconnected") > 0) { log_info("Connection terminated, exiting.");