#include <signal.h> #include <time.h> #include <sys/time.h> #include <unistd.h> #include <stdio.h> #include <stdlib.h> //這是對信號的處理函數(shù) static void signalDeal(int signo) { struct timeval tp; struct tm *tm; gettimeofday(&tp,NULL); //獲得系統(tǒng)當(dāng)前時間(秒和微秒) tm=localtime(&tp.tv_sec); //獲得當(dāng)?shù)啬壳皶r間和日期 printf(" sec = %ld \t",tp.tv_sec); //打印從UNIX紀(jì)元開始到現(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ù) static void InitTime(int tv_sec,int tv_usec) { struct itimerval value; //定義時間參數(shù)結(jié)構(gòu)體value signal(SIGALRM, signalDeal); //注冊信號SIGALRM 和信號處理函數(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ā)送信號,定時類型為ITIMER_REAL } //主函數(shù) int main(int argc,char *argv[]) { InitTime(1,0); //每隔1秒打印一次 while(1) { } exit(0); }
本文名稱:[Linux信號]使用setitimer函數(shù)進(jìn)行精確定時
文章地址:http://chinadenli.net/article24/jsejje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、做網(wǎng)站、面包屑導(dǎo)航、App設(shè)計(jì)、企業(yè)建站、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)