Entrada dentro de un límite de tiempo en el Estándar C

Actualmente estoy haciendo mi tarea y es obligatorio usar C-Free 5.0. Solo necesito tu ayuda para resolver este puzzle. Quiero implementar un límite de tiempo para que el usuario ingrese una respuesta antes de que caduque. He intentado este código pero tengo bloqueo en la función scanf (). ¿Hay algún otro método como una entrada de desbloqueo o algo así? He intentado implementar '#include <sys/select.h>'pero este programa no tiene esa biblioteca.

#include <stdio.h> 
#include <string.h>
#include <time.h>
#include <stdlib.h>

int main()
{
    char st[10];
    printf ("Please enter a line of text : ");
    time_t end = time(0) + 5; //5 seconds time limit.
    while(time(0) < end)
    {
        scanf("%s", &st);
        if(st != NULL)
        {
            printf ("Thank you, you entered >%s<\n", st);
            exit(0);
        }
    }
    main();
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta