Execução de atraso 1 segundo

Então, estou tentando programar um jogo simples baseado em ticks. Eu escrevo em C ++ em uma máquina Linux. O código abaixo ilustra o que estou tentando realizar.

for (unsigned int i = 0; i < 40; ++i)
{
    functioncall();
    sleep(1000); // wait 1 second for the next function call
}

Bem, isso não funciona. Parece que ele dorme por 40 segundos e depois imprime qualquer que seja o resultado da chamada de funçã

Eu também tentei criar uma nova função chamada delay e ficou assim:

void delay(int seconds)
{
    time_t start, current;

    time(&start);

    do
    {
        time(&current);
    }
    while ((current - start) < seconds);
}

Mesmo resultado aqui. Qualquer pessoa

questionAnswers(8)

yourAnswerToTheQuestion