¿Por qué getch () regresa antes de presionar cualquier tecla?

int main(int argc, char *argv[], char *env[])
{
    printf("Press any key to exit.\n");
    getch();
    return 0;
}

Según la página del manual,

getch debe esperar hasta que se presione cualquier tecla

... pero de hecho regresa directamente antes de presionar cualquier tecla. (El valor devuelto es-1).

¿Por qué

Actualiza

Estoy en Linux. ¿Cómo puedo implementarPress any key to exit., si no usagetch()?

getchar() solo volverá después de presionar Enter, no es lo que quiero.

Respuestas a la pregunta(2)

Su respuesta a la pregunta