A leitura de stdin libera stdout?

O stdout possui buffer de linha quando conectado a um terminal, mas lembro de ler em algum lugar que a leitura (pelo menos a partir de stdin) automaticamente liberará o stdout. Todas as implementações de C que eu usei fizeram isso, mas não consigo encontrá-lo no padrão agora.

Faz sentido que funcione dessa maneira, caso contrário, código como este:

printf("Type some input: ");
fgets(line, sizeof line, stdin);

precisaria de um extrafflush(stdout);

Portanto, o stdout está garantido para ser liberado aqui?

EDITAR:

Como várias respostas disseram, parece não havergarantia no padrão em que a saída para stdout no meu exemplo aparecerá antes da leitura do stdin, mas, por outro lado, essa intenção é declarada no (meu rascunho gratuito) do padrão

A dinâmica de entrada e saída de dispositivos interativos deve ocorrer conforme especificado em 7.19.3. A intenção desses requisitos é que a saída sem buffer ou com buffer de linha apareça o mais rápido possível, para garantir que as mensagens de prompt realmente apareçam antes de um programa aguardar entrada.

(ISO / IEC 9899: Projeto do Comitê TC2 - 6 de maio de 2005, página 14).

Portanto, parece que não há garantia, mas provavelmente funcionará na maioria das implementações. (Últimas palavras famosas ...)

questionAnswers(5)

yourAnswerToTheQuestion