Mail Archives: cygwin/1998/02/04/21:56:00
Bash is actually behaving correctly; your printf() call would do the same
thing on Unix. Since stdout is by default fully line-buffered, any text
that isn't terminated with a newline must be flushed before it will show up.
The way I get around this is to write the prompt to stderr using fprintf(),
since stderr is by default unbuffered.
Elliott
-----Original Message-----
From: Nils Goesche <ngo AT wossolit DOT teles DOT de>
To: gnu-win32 AT cygnus DOT com <gnu-win32 AT cygnus DOT com>
Cc: ntemacs-users AT cs DOT washington DOT edu <ntemacs-users AT cs DOT washington DOT edu>
Date: Wednesday, February 04, 1998 4:11 PM
Subject: bash-shell output
>Hi!
>
>The following program doesn't work properly when run from bash
>(with `M-x shell' from within Emacs):
>
>#include <stdio.h>
>
>int main()
>{
> int i;
>
> printf("Enter number: ");
> /* fflush(NULL); */
> scanf("%d", &i);
> printf("Got %d.\n", i);
> return 0;
>}
>
>You have to uncomment that fflush-line. But the usual shells
>like command.com or 4nt don't need that line. This is somewhat
>annoying. Can I at least force the shell somehow to flush
>input/output buffers? Some other programs are just unusable
>because of this behavior.
>
>--
>Nils Goesche
>My obscure opinions are my very own.
>
-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request AT cygnus DOT com" with one line of text: "help".
- Raw text -