Entrada dentro de um limite de tempo no Padrão C

Atualmente estou fazendo minha tarefa e é obrigatório usar o C-Free 5.0. Só preciso da sua ajuda para resolver esse quebra-cabeça. Eu quero implementar um limite de tempo para o usuário inserir uma resposta antes que ela expire. Eu tentei este código, mas ele tem o bloco na função scanf (). Existe algum outro método como uma entrada de desbloqueio ou algo assim. Eu tentei implementar '#include <sys/select.h>'mas este programa não tem essa 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();
}