Прежде всего, рассмотрите возможность использования функции sleep
, если это возможно.Если вам придется выполнять реальную работу в течение определенного периода времени, что я считаю маловероятным, будет работать следующее уродливое решение:
#include <signal.h>
int alarmed = 0;
void sigh(int signum) {
alarmed = 1;
}
int main(void){
/* ... */
signal(SIGALRM, &sigh);
alarm(5); // Alarm in 5 seconds
while(!alarmed) {
/* Do work */
}
/* ... */
}
Решение, использующее time.h
, также возможно, и, возможно, будет проще и /или более точный, в зависимости от контекста:
#include <time.h>
int main(void){
/* ... */
clock_t start = clock();
while(clock() - start < 5 * CLOCKS_PER_SEC) {
/* Do work */
}
/* ... */
}