您好,登錄后才能下訂單哦!
#include <signal.h> #include <time.h> #include <sys/time.h> #include <unistd.h> #include <stdio.h> #include <stdlib.h> //這是對信號的處理函數 static void signalDeal(int signo) { struct timeval tp; struct tm *tm; gettimeofday(&tp,NULL); //獲得系統當前時間(秒和微秒) tm=localtime(&tp.tv_sec); //獲得當地目前時間和日期 printf(" sec = %ld \t",tp.tv_sec); //打印從UNIX紀元開始到現在的秒數 printf(" usec = %ld \n",tp.tv_usec); //打印微秒 printf("%d-%d-%d%d:%d:%d\n",tm->tm_year+1900,tm->tm_mon+1,tm->tm_mday,tm->tm_hour,tm->tm_min,tm->tm_sec); /*打印當地目前時間和日期*/ } //時間初始化函數 static void InitTime(int tv_sec,int tv_usec) { struct itimerval value; //定義時間參數結構體value signal(SIGALRM, signalDeal); //注冊信號SIGALRM 和信號處理函數 value.it_value.tv_sec = tv_sec; //秒 value.it_value.tv_usec = tv_usec; //微秒 value.it_interval.tv_sec = tv_sec; value.it_interval.tv_usec = tv_usec; setitimer(ITIMER_REAL, &value, NULL); //setitimer 發送信號,定時類型為ITIMER_REAL } //主函數 int main(int argc,char *argv[]) { InitTime(1,0); //每隔1秒打印一次 while(1) { } exit(0); }
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。