Linux下的時間概念

2021-04-03 02:19:21 字數 1845 閱讀 2485

hoyt

01-7-27 上午 10:04:44

這一章我們學習linux的時間表示和計算函式

時間的表示

時間的測量

計時器的使用

1.時間表示 在程式當中,我們經常要輸出系統當前的時間,比如我們使用date命令的輸出結果。這個時候我們可以使用下面兩個函式

#include

time_t time(time_t *tloc);

char *ctime(const time_t *clock);

time函式返回從2023年1月1日0點以來的秒數。儲存在time_t結構之中。不過這個函式的返回值對於我們來說沒有什麼實際意義。這個時候我們使用第二個函式將秒數轉化為字串。 這個函式的返回型別是固定的:乙個可能值為。 thu dec 7 14:58:59 2000 這個字串的長度是固定的為26

2.時間的測量 有時候我們要計算程式執行的時間。比如我們要對演算法進行時間分析。這個時候可以使用下面這個函式。

#include

int gettimeofday(struct timeval *tv,struct timezone *tz);

strut timeval ;

gettimeofday將時間儲存在結構tv之中。tz一般我們使用null來代替。

#include

#include

#include

void function()

main()

這個程式輸出函式的執行時間,我們可以使用這個來進行系統效能的測試,或者是函式演算法的效率分析。在我機器上的乙個輸出結果是: used time:0.556070

3.計時器的使用 linux作業系統為每乙個程序提供了3個內部間隔計時器。

itimer_real:減少實際時間。到時的時候發出sigalrm訊號。

itimer_virtual:減少有效時間(程序執行的時間)。產生sigvtalrm訊號。

itimer_prof:減少程序的有效時間和系統時間(為程序排程用的時間)。這個經常和上面乙個使用用來計算系統核心時間和使用者時間。產生sigprof訊號。

具體的操作函式是:

#include

int getitimer(int which,struct itimerval *value);

int setitimer(int which,struct itimerval *newval, struct itimerval *oldval);

struct itimerval *oldval);

struct itimerval

getitimer函式得到間隔計時器的時間值。儲存在value中 setitimer函式設定間隔計時器的時間值為newval。並將舊值儲存在oldval中。 which表示使用三個計時器中的哪乙個。 itimerval結構中的it_value是減少的時間,當這個值為0的時候就發出相應的訊號了。 然後設定為it_interval值。

#include

#include

#include

#include

#include

#define prompt "時間已經過去了兩秒鐘/n/a"

char *prompt=prompt;

unsigned int len;

void prompt_info(int signo)

void init_sigaction(void)

void init_time()

int main()

這個程式每執行兩秒中之後會輸出乙個提示。

Linux下C語言程式設計 時間概念

1.時間表示 在程式當中,我們經常要輸出系統當前的時間,比如我們使用date命令的輸出結果.這個時候我們可以使用下面兩個函式 include time t time time t tloc char ctime const time t clock time函式返回從1970年1月1日0點以來的秒數...

Linux下C語言程式設計 時間概念

1.時間表示 在程式當中,我們經常要輸出系統當前的時間,比如我們使用date命令的輸出結果.這個時候我們可以使用下面兩個函式 include time t time time t tloc char ctime const time t clock time函式返回從1970年1月1日0點以來的秒數...

linux下的時間操作

1 概述 由unix核心提供的基本時間服務是計算自國際標準時間公元1970年1月1日00 00 00以來經過的秒數。這種秒數是以資料型別time t表示的,我們稱之為日曆時間。一旦取得這種以秒計的整型時間值後,通常要呼叫另乙個時間函式將其轉換為人們可讀的時間和日期,我們稱之為分解時間。為了將分解時間...