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

2021-04-06 13:27:55 字數 1644 閱讀 8603

1.時間表示

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

#include

time_t time(time_t *tloc);

char *ctime(const time_t *clock);

time函式返回從2023年1月1日0點以來的秒數.儲存在time_t結構之中.不過這個函式的返回值對於我們來說沒有什麼實際意義.這個時候我們使用第二個函式將秒數轉化為字串. 這個函式的返回型別是固定的:乙個可能值為.thu dec7 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

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語言程式設計

abstract 在程式中,經常需要輸出系統的當前時間 計算程式的執行時間 使用計時器等。introduction 一 時間的型別 1.格林威治標準時間 coordinated universal time utc 是世界標準時間,即常說的格林威治標準時間 greenwich mean time,g...

Linux下C語言程式設計

include include include include define max 10pthread t thread 2 pthread mutex t mut int number 0 i void thread1 printf thread1 主函式在等我完成任務嗎?n pthread e...