2010-10-07 6 views
2

Cette question peut être répétée souvent, désolé de la ramener. J'ai été incapable de trouver une solution :(J'écris un code de surveillance VM en C sous Linux Je veux obtenir le compte en lecture et en écriture de toutes les VM toutes les 10 secondes.Y at-il une bibliothèque C qui fournit cette fonctionnalité (minuterie seul), le blocage/minuterie non bloquant n'a pas d'importance. Merci !!temporisateur bloquant/non bloquant dans C

Cordialement, sethu

+2

Lecture et écriture de quoi? Et quelle plate-forme? – jweyrich

Répondre

1
sleep(10); 

fera le sommeil de fil pendant 10 secondes dans un système unix. Utilisez-le dans une boucle Si vous utilisez Windows comme hôte pour la surveillance, alors la fonction de veille sera acceptée en millisecondes

De plus, étant donné que le multithreading/multitraitement est requis, les implémentations varient en fonction de l'os/plateforme.

7

Pour une minuterie non-blocage (sur les systèmes POSIX), utilisez alarm:

int main(void) { 
    signal(SIGALRM, monitor); 
    monitor(0); 
    /* ... */ 
} 

void monitor(int signal) { 
    /* ... */ 
    alarm(10); 
} 

Mais pour une minuterie de blocage, utilisez sleep comme décrit par lalli.