Créer une timer en C

Comment créer une timer? Une timer comme celle de Visual Basic; vous définissez un intervalle, si le minuteur est activé, il attend que le temps soit écoulé.

Je ne veux pas utiliser une bibliothèque existante parce que je veux savoir comment cela fonctionne.

Alors .. j’espère juste que quelqu’un pourra m’expliquer comment les timers fonctionnent et peut-être me donner un exemple de code pour créer le mien – s’il n’est pas trop avancé

Edit: Je veux en créer un pour un système Linux.

Vous pouvez le faire

#include  #include  int main() { printf("wait\n"); sleep(3); printf("time elapsed\n"); return 0; } 

Ce qui suit est un exemple très basique qui fonctionnera sous Linux. Si vous regardez la page de manuel de signal vous verrez qu’elle est déconseillée au profit de sigaction . Il est important de ne pas oublier la volatile , sinon la boucle while pourrait ne pas se terminer en fonction des optimisations. Notez également comment SIGALRM est une ressource hautement partagée qui peut être utilisée par d’autres installations de timer et qu’il n’en existe qu’une.

Le programme imprimera Waiting de trois secondes puis s’arrête après l’impression. Finally ... une fois.

 #include  #include  #include  volatile int mark = 0; void sortinggger(int sig) { mark = 1; } int main(void) { signal(SIGALRM, sortinggger); alarm(3); while (!mark) { printf("Waiting\n"); } printf("Finally ...\n"); return 0; }