Implementando um evento KeyPress em C

Eu tenho um loop infinito como o seguinte, e dentro desse loop, desejo verificar continuamente o teclado para ver se a tecla ESC (ESC) foi pressionada ou não. Se for pressionado, o loop deve ser interrompido. Como posso fazer isso em C? (Estou usando o gcc e acesso a pthreads também, caso isso precise ser feito por meio de threads)

 while(1){
        //do something
        //check for the ESC key
 }

questionAnswers(2)

yourAnswerToTheQuestion