setvbuf nie może uczynić stdin niebuforowanym

Moim głównym zamiarem było zrobieniegetchar wróć, gdy tylko otrzyma postać, zamiast czekać naWCHODZIĆ klawisz. Próbowałem tego

int main()
{
    setvbuf(stdin,NULL,_IONBF,0);
    getchar();

    return 0;
}

Porównując to z prototypemsetvbuf

setvbuf ( FILE * stream, char * buffer, int mode, size_t size );

powinien się ustawićstdin do trybu niebuforowanego.

Ale nadalgetchar() czeka naWCHODZIĆ

Widziałem podobne posty w ten sposób

Drukowanie podczas czytania znaków w C

które sugerują alternatywne metody wykonaniastdin niebuforowany. Ale jestem ciekaw, dlaczegosetvbuf metoda nie działa