Моя основная цель состояла в том, чтобы вернуть getchar, как только он получит символ, а не ждет клавишу ENTER. Я попробовал это
int main()
{
    setvbuf(stdin,NULL,_IONBF,0);
    getchar();
    return 0;
}
Сравнивая это с прототипом setvbuf
setvbuf ( FILE * stream, char * buffer, int mode, size_t size );
он должен установить stdin в небуферизованный режим.
Но все же getchar() продолжает ждать ENTER
Я видел похожие сообщения вроде этого
Печать при чтении символов в C
 которые предлагают альтернативные методы, чтобы сделать stdin небуферизованным. Но мне любопытно узнать, почему метод setvbuf не работает
