在C語言中,可以使用<time.h>
頭文件中的time()
函數(shù)來獲取當前時間戳,然后通過比較時間戳來實現(xiàn)定時器。
下面是一個簡單的示例代碼,演示了如何設置一個定時器來每隔1秒輸出一次當前時間:
#include <stdio.h>
#include <time.h>
#include <unistd.h>
int main() {
time_t start_time = time(NULL); // 獲取程序開始時間
time_t current_time;
while (1) {
current_time = time(NULL); // 獲取當前時間
if (current_time - start_time >= 1) { // 判斷是否已經(jīng)過了1秒
printf("Current time: %s", ctime(¤t_time));
start_time = current_time; // 更新開始時間
}
usleep(100000); // 暫停100毫秒,避免過多占用CPU資源
}
return 0;
}
上述代碼中,使用time()
函數(shù)獲取當前時間戳,并通過ctime()
函數(shù)將時間戳轉(zhuǎn)換成可讀的字符串格式。然后設置一個開始時間,每隔1秒判斷一次是否已經(jīng)過了1秒,如果過了1秒則輸出當前時間,并更新開始時間。同時使用usleep()
函數(shù)暫停100毫秒,以避免過多占用CPU資源。
需要注意的是,上述示例只是一個簡單的定時器實現(xiàn),實際應用中可能需要更加精確的定時器,可以使用更高級的定時器庫或操作系統(tǒng)提供的定時器機制。