您好,登錄后才能下訂單哦!
#include <signal.h> #include <time.h> #include <sys/time.h> #include <unistd.h> #include <stdio.h> #include <stdlib.h> //這是對(duì)信號(hào)的處理函數(shù) static void signalDeal(int signo) { struct timeval tp; struct tm *tm; gettimeofday(&tp,NULL); //獲得系統(tǒng)當(dāng)前時(shí)間(秒和微秒) tm=localtime(&tp.tv_sec); //獲得當(dāng)?shù)啬壳皶r(shí)間和日期 printf(" sec = %ld \t",tp.tv_sec); //打印從UNIX紀(jì)元開(kāi)始到現(xiàn)在的秒數(shù) 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); /*打印當(dāng)?shù)啬壳皶r(shí)間和日期*/ } //時(shí)間初始化函數(shù) static void InitTime(int tv_sec,int tv_usec) { struct itimerval value; //定義時(shí)間參數(shù)結(jié)構(gòu)體value signal(SIGALRM, signalDeal); //注冊(cè)信號(hào)SIGALRM 和信號(hào)處理函數(shù) 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 發(fā)送信號(hào),定時(shí)類(lèi)型為ITIMER_REAL } //主函數(shù) int main(int argc,char *argv[]) { InitTime(1,0); //每隔1秒打印一次 while(1) { } exit(0); }
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。