sys/timerfd.h
int timerfd_create(int clockid, int flags);
clock_realtime :systemwide realtime clock. 實時時鐘,真實的時間
clock_monotonic:系統啟動後開始計時,從不進行調整和復位,不受系統時鐘修改的影響
struct timespec ;
struct itimerspec ;
int timerfd_settime(int fd, int flags, const struct itimerspec *new_value, struct itimerspec *old_value);
tfd_timer_abstime 表示絕對時間,例如:若clockid填的是clock_monotonic,tfd_timer_abstime表示啟動後 it_value 時間,
0 表示相對時間, 例如:若clockid填的是clock_monotonic,flags為0 表示當前時間後it_value時間,
int timerfd_gettime(int fd, struct itimerspec *curr_value);
uint64_t exp = 0;
read(fd, &exp, sizeof(uint64_t));
close(fd);
如果timerfd_settime設定為tfd_timer_abstime(絕對時間),則設定的時間是具體的某個時間點, clock_gettime獲取當前時間加上時間差,獲取時設定clock_realtime還是clock_monotonic取決於timerfd_create設定的值。
如果timerfd_settime設定為0(相對時間),則設定的時間是相對與當前的時間,例如:
new_value.it_value.tv_sec = 3;
new_value.it_value.tv_nsec = 0;
Linux應用層定時器
alarm會設定乙個定時器,當時間到期後會觸發sigalrm訊號,該訊號可能會打斷系統呼叫的執行,它使用的定時器和setitimer對應的itimer real是同乙個。include include include include include include include include i...
linux應用層定時器與休眠
1 alarm 如果不要求很精確的話,用alarm 和signal 就夠了 unsigned int alarm unsigned int seconds 函式說明 alarm 用來設定訊號sigalrm在經過引數seconds指定的秒數後傳送給目前的程序。如果引數seconds為0,則之前設定的鬧...
Linux應用層下定時器函式setitimer
1.介紹 在linux下如果定時如果要求不太精確的話,使用alarm 和signal 就行了 精確到秒 但是如果想要實現精度較高的定時功能的話,就要使用setitimer函式。setitimer 為linux的api,並非c語言的standard library,setitimer 有兩個功能,一是...