Criar funcao sleep com laço C

Eu preciso criar uma funcao sleep usando laço para fazer com que a thread execute uma funcao a cada periodo de tempo.
Ai tava pensando em por exemplo a cada 1 segundo, o codigo +/- assim

int i;

for(int i = 0; i < 1; i++)
{
   .....
}

So q isso nao acontece em 1 segundo pq o processador demora bem menos para executar o incremento, visualmente pode ate parecer 1 segundo e tal.
Ai pensei se tem como no contador do for em vez dele ser um inteiro ele ser um tipo q guarda tempo?

Ou se alguem tiver outra ideia, por favor me ajuda ai

ps: nao posso usar a funçao sleep que ja existe na pthread.

Valeu

Vou colocar um exemplo em Java, visto o fórum ser de Java.

while (true) {
    // ... execute algo aqui
    try {
       Thread.currentThread().sleep(1000);
    } catch(Exception e) {
        // tratar excecao
    }
}

Apenas lembrando que esse tipo de código não é nenhum pouco recomendado.
Até