On 25 November 2015, Gary Johnson <[email protected]> wrote:
> On 2015-11-25, LCD 47 wrote:
> 
> [...]
> 
> >     You can make stdout unbuffered:
> > 
> >         #include <stdio.h>
> > 
> >         int main()
> >         {
> >             setbuf(stdout, NULL);
> >             printf("This is a message on stdout and should appear first\n");
> >             fprintf(stderr, "This is a message on stderr and should appear 
> > second\n");
> > 
> >             return 0;
> >         }
> > 
> > or you can flush stdout before writing to stderr:
> > 
> >         #include <stdio.h>
> > 
> >         int main()
> >         {
> >             printf("This is a message on stdout and should appear first\n");
> >             fflusf(stdout);
> >             fprintf(stderr, "This is a message on stderr and should appear 
> > second\n");
> > 
> >             return 0;
> >         }
> > 
> >     But you can only do this because you can recompile the program.  If
> > you can't change the program you're out of luck.  You can't fix the
> > problem without changing the program itself.
> 
> Thanks for the explanations and clearing up my misunderstandings.
> 
> There may be a solution that doesn't require modifying and
> recompiling the program:  run the program under unbuffer or stdbuf.
> 
> http://linux.die.net/man/1/unbuffer
> http://linux.die.net/man/1/stdbuf

    Indeed, this works:

        unbuffer make run 2>&1 | cat

and so does this:

        stdbuf -o L make run 2>&1 | cat

    But unbuffer(1) is part of the expect package, and stdbuf(1) is
Linux-specific.

    /lcd

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui