Guarda che getchar() non attende l'invio, ma prende il primo carattere dallo stdin (di default è la tastiera).

Per lo sleep:

#include <unistd.h>

unsigned sleep(unsigned seconds);
Ciao