亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 操作系統 > 正文

系統數據文件和信息之時間和日期例程

2024-06-28 13:28:39
字體:
來源:轉載
供稿:網友
系統數據文件和信息之時間和日期例程

由UNIX內核提供的基本時間服務是計算自國際標準時間公元1970年1月1日00:00:00以來經過的秒數。這種秒數是以數據類型time_t表示的。我們稱它們為日歷時間。日歷時間包括時間和日期。UNIX在這方面與其他操作系統的區別是:(a)以國際標準時間而非本地時間計時;(b)可自動進行轉換,例如變換到夏時制;(c)將時間和日期作為一個量值保存。

time函數返回當前時間和日期:

#include <time.h>time_t time( time_t *calptr );返回值:若成功則返回時間值,若出錯則返回-1

時間值總是作為函數值返回。如果參數不為空,則時間值也存放在由calptr指向的單元內。

在系統V派生的系統中,調用stime(2)函數,在BSD派生的系統中,則調用settimeofday(2),用于對內核中的當前時間設置初始值。

與time函數相比,gettiimeofday提供了更高的分辨率(最高為微秒級)。這對于某些應用很重要。

#include <sys/time.h>int gettimeofday( struct timeval *restrict tp, void *restrict tzp );返回值:總是返回0

該函數作為XSI擴展定義在Single UNIX Specification中,tzp的唯一合法值是NULL,其他值則將產生不確定的結果。

gettimeofday函數將當前時間存放在tp指向的timeval結構中,而該結構存儲秒和微秒。

struct timeval {    time_t    tv_sec;     /* seconds */    long      tv_usec;    /* microseconds */};

一旦取得這種以秒計的整型時間值后,通常要調用另一個時間函數將其轉換為人們可讀的時間和日期。圖6-1說明了各種時間函數之間的關系。(圖中用虛線表示的四個函數localtime、mktime、ctime和strftime都受到環境變量TZ的影響:如果定義了TZ,則這些函數將使用其值以代替系統默認時區。如果TZ定義為空串(即TZ=),則使用國際標準時間UTC。)

1365000386_2149

圖6-1 各個時間函數之間的關系

兩個函數localtime和gmtime將日歷時間轉換成以年、月、日、時、分、秒、周日表示的時間,并將這些存放在一個tm結構中。

struct tm {             /* a broken-down time */    int     tm_sec;     /* seconds after the minute: [0 - 60] */    int     tm_min;     /* minutes after the hour: [0 - 59] */    int     tm_hour;    /* hours after midnight: [0 - 23] */    int     tm_mday;    /* day of the month: [1 - 31] */    int     tm_mon;     /* months since January: [0 - 11] */    int     tm_year;    /* years since 1900 */    int     tm_wday;    /* days since Sunday: [0 - 6] */    int     tm_yday;    /* days since January: [0 - 365] */    int     tm_isdst;   /* daylight saving time flag: [<0, =0, >0] */};

關于上面結構的最后一項tm_isdst(夏時制標志)可參考:http://blog.163.com/caoguoqiang_dlut/blog/static/1065891422011321115144181/

秒可以超過59的理由是可以表示潤秒。注意,除月日字段,其他字段的值都以0開始。如果夏時制生效,則夏時制標志為正;如果為非夏時制時間,則該標志值為0;如果此信息不可用,則其值為負。

#include <time.h>struct tm *gmtime( const time_t *calptr );struct tm *localtime( const time_t *calptr );兩個函數返回值:指向tm結構的指針。

localtime和gmtime之間的區別是:localtime將日歷時間轉換成本地時間(考慮到本地時間和夏時制標志),而gmtime則將日歷時間轉換成國際標準時間的年、月、日、時、分、秒、周日。

函數mktime以本地時間的年、月、日等作為參數,將其轉換成time_t值。

#include <time.h>time_t mktime( struct tm *tmptr );返回值:若成功則返回日歷時間,若出錯則返回-1

asctime和ctime函數產生大家都熟悉的26字節的字符串,這與date(1)命令的系統默認輸出形式類似,例如:

Mon Jan 6 01:59:18 PST 2014

#include <time.h>char *asctime( const struct tm *tmptr );char *ctime( const time_t *calptr );兩個函數返回值:指向以null結尾的字符串的指針

asctime的參數是指向年、月、日等字符串的指針,而ctime的參數則是指向日歷時間的指針。

最后一個時間函數是strftime,它是非常復雜的類似于PRintf的時間值函數。

#include <time.h>size_t strftiime( char *restrict buf, size_t maxsize,             const char *restrict format,                const struct tm *restrict tmptr );返回值:若有空間則返回存入數組的字符數,否則返回0

最后一個參數是要格式化的時間值,由一個指向tm結構的指針指定。格式化結果存放在一個長度為maxsize個字符的buf數組中,如果buf長度足以存放格式化結果及一個null終止符,則該函數返回在buf中存放的字符數(不包括null終止符),否則該函數返回0。

format參數控制時間值的格式。如同printf函數一樣,轉換說明的形式是百分號之后跟一個特定字符。format中的其他字符則按原樣輸出。兩個連續的百分號在輸出中產生一個百分號。與printf函數不同的是,每個轉換說明產生一個不同的定長輸出字符串,在format字符串中沒有字段寬度修飾符。

下表中列出了部分轉換說明,更詳細的可man strftime查看。

1365001077_6986

本篇博文內容摘自《UNIX環境高級編程》(第二版),僅作個人學習記錄所用。關于本書可參考:http://www.apuebook.com/。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩精品中文字幕在线播放| 精品久久香蕉国产线看观看gif| 国产精品成人一区二区三区吃奶| 国产精品综合网站| 欧洲成人免费aa| 亚洲国产91色在线| 欧美一级视频一区二区| 亚洲国产成人精品一区二区| 91精品国产高清| 久久精品视频99| 国产国语videosex另类| 97成人精品区在线播放| 欧美有码在线视频| 欧美国产日韩精品| 国产欧美亚洲精品| 国产精品国产福利国产秒拍| 国产一区欧美二区三区| 欧美国产欧美亚洲国产日韩mv天天看完整| 日av在线播放中文不卡| 亚洲国产精品久久久久| 伊人久久久久久久久久久久久| 午夜精品久久久久久久久久久久| 国产丝袜一区视频在线观看| 午夜精品久久久久久99热软件| 亚洲成人精品视频在线观看| 91精品国产高清自在线看超| 国产一区二区三区在线视频| 欧美精品在线极品| 黑人巨大精品欧美一区二区一视频| 国产大片精品免费永久看nba| 欧美在线不卡区| 国产在线精品一区免费香蕉| 日韩av免费看| 国产精品人成电影| 亚洲精品视频中文字幕| 91免费综合在线| 亚洲福利精品在线| 欧美精品性视频| 成人黄色在线播放| 色天天综合狠狠色| 日韩在线观看成人| 国产丝袜一区视频在线观看| 久久91精品国产91久久久| 日韩av电影在线免费播放| 欧美劲爆第一页| 日韩欧亚中文在线| 亚洲少妇中文在线| 亚洲一级免费视频| 91亚洲国产成人精品性色| 欧美视频中文字幕在线| 国产精品视频久久久久| 国产精品免费电影| 欧美理论在线观看| 国产精品第一视频| 久久影院资源网| 欧美成人h版在线观看| 欧美亚洲另类制服自拍| 久久精品男人天堂| 亚洲精品99999| 国产成人在线精品| 午夜精品三级视频福利| 国产精品99导航| 亚洲国产精品嫩草影院久久| 国产精品一区二区三区在线播放| 亚洲影视中文字幕| 亚洲精品久久久久久久久久久| 国产美女扒开尿口久久久| 亚洲激情在线观看视频免费| 97色在线观看免费视频| 91老司机精品视频| 国产视频精品一区二区三区| 久久久久亚洲精品成人网小说| 亚洲一区中文字幕| 日韩a**站在线观看| 久久久国产精品免费| 亚洲成人av在线播放| 欧美黄色成人网| 久久久久久久电影一区| 97超碰国产精品女人人人爽| 亚洲最大福利视频网站| 97色在线观看免费视频| 亚洲国产精品悠悠久久琪琪| 欧美在线欧美在线| 亚洲天堂第二页| 欧美又大粗又爽又黄大片视频| 欧美成人四级hd版| 成人免费xxxxx在线观看| 亚洲成人在线网| 热re99久久精品国产66热| 高清欧美性猛交xxxx| 国产视频久久久久久久| 欧美小视频在线| 亚洲国产欧美一区二区三区久久| 亚洲无亚洲人成网站77777| 在线日韩第一页| 中文字幕亚洲欧美日韩高清| 欧美另类极品videosbestfree| 中文字幕亚洲欧美一区二区三区| 91精品在线播放| 亚洲国产日韩欧美在线动漫| 国产aⅴ夜夜欢一区二区三区| 2023亚洲男人天堂| 国产精品高潮视频| 欧美大码xxxx| 97超级碰碰人国产在线观看| 国产盗摄xxxx视频xxx69| 成人国产精品日本在线| 国产精品福利久久久| 一区二区日韩精品| 日韩av片免费在线观看| 国产在线一区二区三区| 国产精品入口夜色视频大尺度| 91精品国产综合久久久久久久久| 国产精品视频最多的网站| 亚洲久久久久久久久久| 久久精品一区中文字幕| 欧美在线视频观看免费网站| 欧美资源在线观看| 欧美成人一区二区三区电影| 久久久影视精品| 欧美一级视频一区二区| 久久久亚洲网站| 欧美成人精品在线| 欧美中文字幕在线观看| 亚洲石原莉奈一区二区在线观看| 国产精品视频男人的天堂| 久久伊人91精品综合网站| 欧美成人午夜免费视在线看片| 亚洲女人天堂视频| 欧美成人精品xxx| 欧美精品久久久久| 日本a级片电影一区二区| 久久久久久久久网站| 精品国产91久久久| 在线观看日韩av| 亚洲图片在线综合| 日韩在线欧美在线国产在线| 日韩国产欧美精品在线| 国产极品精品在线观看| 亚洲国产成人精品久久| 亚洲精品国产精品国自产在线| 国产精品自产拍在线观看| 人九九综合九九宗合| 在线精品高清中文字幕| 日韩亚洲精品视频| 国产日韩精品一区二区| 国产午夜精品视频免费不卡69堂| 国产成人精品在线| 夜色77av精品影院| 成人免费视频xnxx.com| 国产主播精品在线| 亚洲精品美女视频| 久久色免费在线视频| 综合网中文字幕| 日韩视频―中文字幕| 成人国产在线激情| 日韩视频亚洲视频| 欧美性xxxxx| 国产精品久久久久久久久久东京| 68精品国产免费久久久久久婷婷| 久久精品国产亚洲7777| 国产不卡视频在线| 成人h视频在线| 在线看欧美日韩|