alarm訊號 select RTC定時器

2021-07-23 13:14:55 字數 2015 閱讀 3190

#include 

#include

void car_handler(int signo)

//設定5秒停止錄音

signal(sigalrm, car_handler);

alarm(5);//設定定時5s

原型:

intselect(int nfds, fd_set *readfds, fd_set *writefds,

fd_set *exceptfds, struct timeval *timeout);

例一:

timeval的結構如下:

struct timeval

一、秒級定時器

複製** **如下:

void seconds_sleep(unsigned seconds)while(err<0 && errno==eintr);

}二、毫秒級別定時器

**如下:

void milliseconds_sleep(unsigned

long msec)while(err<0 && errno==eintr);

}三、微妙級別定時器

**如下:

void microseconds_sleep(unsigned

long usec)while(err<0 && errno==eintr);

}四、test:

#include

#include

#include

int main()

}

例二:

#include

#include

#include

#include

/*seconds: the seconds; mseconds: the micro seconds*/

void settimer(int seconds, int mseconds)

int main()

rtc:

#include

#include

#include

#include

#include

#include

#include

#include

#include

int main(int argc, char* argv)

/*set the freq as 4hz*/

if(ioctl(fd, rtc_irqp_set, 1) < 0)

/* enable periodic interrupts */

if(ioctl(fd, rtc_pie_on, 0) < 0)

for(i = 0; i < 100; i++)

printf("timer\n");

} /* disable periodic interrupts */

ioctl(fd, rtc_pie_off, 0);

close(fd);

return

0;

} #include

#include

#include

#include

#include

#include

#include

int main()

ioctl(fd,rtc_rd_time,&rtc);

printf("\n\ncurrentrtc data/time is %d-%d-%d, %02d:%02d:%02d.\n", rtc.tm_mday, rtc.tm_mon +1,rtc.tm_year + 1900, rtc.tm_hour, rtc.tm_min, rtc.tm_sec);

close(fd);

exit(exit_success);

}

alarm(設定訊號傳送鬧鐘)

alarm 設定訊號傳送鬧鐘 相關函式 signal,sleep 表頭檔案 include 定義函式 unsigned int alarm unsigned int seconds 函式說明 alarm 用來設定訊號sigalrm在經過引數seconds指定的秒數後傳送給目前的程序。如果引數seco...

使用alarm配合訊號實現sleep

author selfimpr blog mail lgg860911 yahoo.com.cn apue中描述solaris 9是使用alarm實現的sleep,其語義如下 如果在sleep之前有乙個未到期的alarm時鐘,則中斷時鐘 下面是乙個簡化的實現,語義為 如果sleep時發現已經有乙個a...

訊號之alarm和pause函式

使用alarm函式可以設定乙個計時器,在將來某個指定的時間,該計時器會超時。當計時器超時時,產生sigalrm訊號。如果不忽略或不捕捉此訊號,則其預設動作是終止呼叫該alarm函式的程序。include unsigned int alarm unsigned int seconds 返回值 0或以前...