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