1. 程式人生 > 其它 >常用C函式庫

常用C函式庫

時間類
簡介
time.h標頭檔案定義了四個變數型別,兩個巨集和各種操作日期和時間的函式
types

序號 types 描述 定義
1 size_t 無符號整數型別,它是sizeof關鍵字的結果 long unsigned int
2 clock_t 用來儲存處理器的CLOCKS,也就是CPU ticks,通常配合一個巨集CLOCKS_PER_SEC,用來計算時間 這個OS所在的CPU結構,是一個無符號整型數
3 time_t seconds since the Epoch(1970-1-1 00:00:00 UTC) 是一個無符號整型數
4 struct tm 用來儲存時間和日期 見下面

tm結構定義如下:

struct tm
{
	int tm_sec;		//seconds,[0-59]
	int tm_min;		//minutes,[0-59]
	int tm_hour;	//hours,[0-23]
	int tm_mday;	//day,[1-31]
	int tm_mon;		//month,[0-11],這個要注意月份是從零開始的
	int tm_year;	//now year - 1900,這是從1900年開始減的,而不是從1970開始的
	int tm_wday;	//day of week.[0-6],星期數是從0開始的
	int tm_yday;	//days in year.[0-365]
	int tm_isdst	//是不是夏時令
}

巨集

序號 巨集 描述
1 NULL 空指標的常量值
2 CLOCKS_PER_SEC 一秒鐘有多少ticks

函式

序號 函式 描述 執行緒安全
1 time_t time(time_t *seconds) 返回自1970-01-01 00:00:00 UTC到現在,共過了多少秒(calendar seconds)。常配合difftime函式用來計算時間差
2 double difftime(time_t time1,time_t time0) 得到time1-time0的秒差
3 char* ctime(const time_t *p_time) 將得到秒數轉換為日曆字串(calendar string),本地時區
4 char* ctime_r(const time_t *p_time, char *buf) 將得到秒數轉換為日曆字串(calendar string),本地時區
5 struct tm* gmtime(const time_t *timer) 用秒數值計算出tm中的各個值,並用協調世界時(UTC)也被稱為格林尼治標準時間(GMT)表示。
6 struct tm* gmtime_r(const time_t *timer, struct tm *result) 用秒數值計算出tm中的各個值,採用協調世界時(UTC)也被稱為格林尼治標準時間(GMT)時區。
7 struct tm* localtime(const time_t* timer) 用秒數值計算出tm中的各個值,採用本地時區
8 struct tm* localtime_r(const time_t* timer, struct tm *result) 用秒數值計算出tm中的各個值,採用本地時區
9 char* asctime(const struct tm* timeptr) 將tm結構體的內容轉為字串
10 char* asctime_r(const struct tm* timeptr, char buf[]) 將tm結構體的內容轉為字串
11 time_t mktime(struct tm* timeptr) 由tm結構體計算出一個本地時區calendar seconds
12 size_t strftime(char* str,size_t maxsize,const char* format,const struct tm* timeptr) 由tm結構體,按指定格式format生成字串
13 clock_t clock(void) 獲得CPU的執行ticks,若想得到執行時間,就要除以CLOCKS_PER_SEC