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...