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表示的,我們稱之為日曆時間。一旦取得這種以秒計的整型時間值後,通常要呼叫另乙個時間函式將其轉換為人們可讀的時間和日期,我們稱之為分解時間。為了將分解時間...