Similar to other print functions we need to flush buffered data in order to work with pipes and output redirects.
After this patch ip monitor mroute &>log works properly. Signed-off-by: Nikolay Aleksandrov <niko...@cumulusnetworks.com> --- ip/ipmroute.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ip/ipmroute.c b/ip/ipmroute.c index b29c78e4cc86..ede09ca96412 100644 --- a/ip/ipmroute.c +++ b/ip/ipmroute.c @@ -57,6 +57,7 @@ int print_mroute(struct nlmsghdr *n, void *arg) struct rtmsg *r = NLMSG_DATA(n); int len = n->nlmsg_len; struct rtattr *tb[RTA_MAX+1]; + FILE *fp = (FILE *)arg; const char *src, *dst; SPRINT_BUF(b1); SPRINT_BUF(b2); @@ -209,6 +210,7 @@ int print_mroute(struct nlmsghdr *n, void *arg) print_string(PRINT_FP, NULL, "\n", NULL); close_json_object(); + fflush(fp); return 0; } -- 2.20.1