#include <stdio.h> // for printf()
#include <unistd.h> // for pause()
#include <signal.h> // for signal()
#include <string.h> // for memset()
#include <sys/time.h> // struct itimeral. setitimer()
void printMsg(int);
int main() {
printf("in main\n");
// Get system call result to determine successful or failed
int res = 0;
// Register printMsg to SIGALRM
signal(SIGALRM, printMsg);
struct itimerval tick;
// Initialize struct
memset(&tick, 0, sizeof(tick));
// Timeout to run function first time
tick.it_value.tv_sec = 0; // sec
tick.it_value.tv_usec = 10000; // micro sec.
// Interval time to run function
tick.it_interval.tv_sec = 0;
tick.it_interval.tv_usec = 10000;
// Set timer, ITIMER_REAL : real-time to decrease timer,
// send SIGALRM when timeout
res = setitimer(ITIMER_REAL, &tick, NULL);
if (res) {
printf("Set timer failed!!/n");
}
// Always sleep to catch SIGALRM signal
while(1) {
pause();
}
return 0;
}
void printMsg(int num) {
static int num1 = 0;
printf("%s, num1: %d\n","Hello World!! num ", ++num1);
}
http://www.cnblogs.com/anywei/archive/2011/11/28/setitimer.html
1440

被折叠的 条评论
为什么被折叠?



