Função "Temporizador" em C
Exemplo simples em compilação normal.
A função lê um instante do sistema e divide o valor pelo número de ciclos de execução da máquina para calcular tempo.
Depois faz isto por uma segunda vez dentro de um laço (loop).
Quando a diferença entre a segunda e a primeira leitura for igual a um valor fornecido em segundos à função, o loop se encerra e a função termina.
Deste modo, durante a execução da função passou-se este tempo em segundos.
Igual à sleep em Bash.
A função lê um instante do sistema e divide o valor pelo número de ciclos de execução da máquina para calcular tempo.
Depois faz isto por uma segunda vez dentro de um laço (loop).
Quando a diferença entre a segunda e a primeira leitura for igual a um valor fornecido em segundos à função, o loop se encerra e a função termina.
Deste modo, durante a execução da função passou-se este tempo em segundos.
Igual à sleep em Bash.
Descrição
Exemplo simples em compilação normal.
A função lê um instante do sistema e divide o valor pelo número de ciclos de execução da máquina para calcular tempo.
Depois faz isto por uma segunda vez dentro de um laço (loop).
Quando a diferença entre a segunda e a primeira leitura for igual a um valor fornecido em segundos à função, o loop se encerra e a função termina.
Deste modo, durante a execução da função passou-se este tempo em segundos.
Igual à sleep em Bash.
A função lê um instante do sistema e divide o valor pelo número de ciclos de execução da máquina para calcular tempo.
Depois faz isto por uma segunda vez dentro de um laço (loop).
Quando a diferença entre a segunda e a primeira leitura for igual a um valor fornecido em segundos à função, o loop se encerra e a função termina.
Deste modo, durante a execução da função passou-se este tempo em segundos.
Igual à sleep em Bash.
#include <stdio.h>
#include <time.h>
// prototipo
void pause (float);
/** procedimento de compilacao normal
* uso: pause(valor)
*
* valor eh um numero maior que zero podendo ser uma fracao.
* eh o tempo em segundos de pausa no programa.
**/
void pause (float delay1) {
if (delay1<0.001) return; // pode ser ajustado e/ou evita-se valores negativos.
float inst1=0, inst2=0;
inst1 = (float)clock()/(float)CLOCKS_PER_SEC;
while (inst2-inst1<delay1) inst2 = (float)clock()/(float)CLOCKS_PER_SEC;
return;
}
int main (void) {
printf ("Favor olhar para o relogio da maquina para conferir.\n");
printf ("5,5 segundos antes...\n");
pause (5.5);
printf ("5,5 segundos depois...\n");
return 0;
}
A função funciona perfeitamente, porém tive que retirar de seu código a função main, pois desejava utilizar a função em um programa à parte. Esse é o meu conselho para quem quiser utilizar em um programa separado. Obrigado pela ajuda e parabéns pelo trabalho.