Hello,
I have a question about pipe behavior. I wrote a simple program that
does a printf, sleeps for 5 seconds and then another printf. If I run
the program with the following way: $ ./simple | cat The output is
delayed until the program finished. I guessed that the pipe is buffered
and doesn't flush until it is closed when the program ends. But then I
ran the same program as an emacs subprocess and attached a buffer to it.
In this scenario the first printf is displayed, 5 seconds pass and then
the second printf is displayed. Emacs also uses pipes so I do not
understand why the behavior is different.