成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Unix系統(tǒng)時(shí)間和日期例程講解

系統(tǒng) 其他OS
在文章中,我們會(huì)對Unix系統(tǒng)的時(shí)間和日期的例程進(jìn)行講解。在很多伯克利類的Unix系統(tǒng)中,time(3)只是一個(gè)函數(shù),它調(diào)用gettimeofday(2)系統(tǒng)調(diào)用。

Unix系統(tǒng)內(nèi)核提供的基本時(shí)間服務(wù)是國際標(biāo)準(zhǔn)時(shí)間公元1970年1月1日00:00:00以來經(jīng)過的秒數(shù),這種秒數(shù)是以數(shù)據(jù)類型time_t表示的。我們稱它們?yōu)槿諝v時(shí)間。日歷時(shí)間包括時(shí)間和日期。

Unix系統(tǒng)在這方面與其他操作系統(tǒng)的區(qū)別是:(a)以國際標(biāo)準(zhǔn)時(shí)間而非本地時(shí)間計(jì)時(shí);(b)可自動(dòng)進(jìn)行轉(zhuǎn)換,例如變換到夏日制;(c)將時(shí)間和日期作為一個(gè)量值保存。

Unix系統(tǒng)time函數(shù)返回當(dāng)前時(shí)間和日期。

在time.h中定義
 

  1. CODE:#ifndef _TIME_T  
  2. #define _TIME_T  
  3. typedef long time_t;  
  4. #endif   
  5. l time_t time(time_t * tp); 

返回:若成功則為時(shí)間值,若出錯(cuò)則為- 1;

時(shí)間值作為函數(shù)值返回。如果Unix系統(tǒng)參數(shù)非null,則時(shí)間值也存放在由tp指向的單元內(nèi)。

其中四個(gè)函數(shù)l o c a l t i m e、m k t i m e、c t i m e和s t r f t i m e都受到環(huán)境變量T Z的影響。如果定義了T Z,則這些函數(shù)將使用其值以代替系統(tǒng)默認(rèn)時(shí)區(qū)。如果T Z定義為空串(亦即T Z = ),則使用國際標(biāo)準(zhǔn)時(shí)間。

在很多伯克利類的Unix系統(tǒng)中,time(3)只是一個(gè)函數(shù),它調(diào)用gettimeofday(2)系統(tǒng)調(diào)用。在SVR4中調(diào)用stime(2)函數(shù),在伯克利類的系統(tǒng)中調(diào)用settimeofday(2)對內(nèi)核中的當(dāng)前時(shí)間設(shè)置初始值。與time和stime函數(shù)相比,BSD的gettimeofday和settimeofday提供了更高的分辨率(微秒級)。這對某些應(yīng)用很重要。

兩個(gè)函數(shù)l o c a l t i m e和g m t i m e將日歷時(shí)間變換成以年、月、日、時(shí)、分、秒、周日表示的時(shí)間,并將這些存放在一個(gè)t m結(jié)構(gòu)中。
 

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

秒可以超過5 9的理由是可以表示潤秒。注意,Unix系統(tǒng)除了月日字段,其他字段的值都以0開始。如果夏時(shí)制生效,則夏時(shí)制標(biāo)志值為正;如果已非夏時(shí)制時(shí)間則為0;如果此信息不可用,則為負(fù)。

l struct tm * gmtime(const time_t *tp);
l struct tm *localtime(const time_t * tp); 兩個(gè)函數(shù)返回:指向t m結(jié)構(gòu)的指針
l o c a l t i m e和g m t i m e之間的區(qū)別是: l o c a l t i m e將日歷時(shí)間變換成本地時(shí)間(考慮到本地時(shí)區(qū)和夏時(shí)制標(biāo)志),而g m t i m e則將Unix系統(tǒng)日歷時(shí)間變換成國際標(biāo)準(zhǔn)時(shí)間的年、月、日、時(shí)、分、秒、周日。

函數(shù)mktime以本地時(shí)間的年、月、日等作為參數(shù),將其變換成t i m e _ t值。

l time_t mktime(struct tm * tp); 返回:若成功則為Unix系統(tǒng)日歷時(shí)間,若出錯(cuò)則為- 1
a s c t i m e和c t i m e函數(shù)產(chǎn)生形式的2 6字節(jié)字符串,a s c t i m e的參數(shù)是指向年、月、日等字符串的指針,而c t i m e的參數(shù)則是指向日歷時(shí)間的指針。

這與Unix系統(tǒng)d a t e ( 1 )命令的系統(tǒng)默認(rèn)輸出形式類似:
Tue Jan 14 17:49:03 1992\n\0
l char *asctime(const struct tm *t m p t r) ;
l char *ctime(const time_t * c a l p t r) ;兩個(gè)函數(shù)返回:指向n u l l結(jié)尾的字符串

***一個(gè)Unix系統(tǒng)時(shí)間函數(shù)是strftime,它是非常復(fù)雜的p r i n t f類的時(shí)間值函數(shù)。
l size_t strftime(char * buf, size_t smax, const char * format, const struct tm * tp);

返回:若有空間,則存入數(shù)組的字符數(shù),否則為0

***一個(gè)Unix系統(tǒng)參數(shù)是要格式化的時(shí)間值,由一個(gè)指向一個(gè)年、月、日、時(shí)、分、秒、周日時(shí)間值的指針說明。格式化結(jié)果存放在一個(gè)長度為m a x s i z e個(gè)字符的b u f數(shù)組中,如果b u f長度足以存放格式化結(jié)果及一個(gè)n u l l終止符,則該函數(shù)返回在b u f中存放的字符數(shù)(不包括n u l l終止符),否則該函數(shù)返回0。

Unix系統(tǒng)f o r m a t參數(shù)控制時(shí)間值的格式。如同p r i n t f函數(shù)一樣,變換說明的形式是百分號之后跟一個(gè)特定字符。f o r m a t中的其他字符則按原樣輸出。兩個(gè)連續(xù)的百分號在輸出中產(chǎn)生一個(gè)百分號。與p r i n t f函數(shù)的不同之處是,每個(gè)變換說明產(chǎn)生一個(gè)定長輸出字符串,在f o r m a t字符串中沒有字段寬度修飾符。表中列出了2 1種ANSI C規(guī)定的變換說明。

【編輯推薦】

  1. Unix sed高級工具的講解
  2. 對Unix系統(tǒng)發(fā)展期和現(xiàn)況的了解
  3. 深入的探討Unix系統(tǒng)發(fā)展期過程
  4. 一起來看Unix操作系統(tǒng)家譜
  5. 淺析Unix操作系統(tǒng)用戶輸入的內(nèi)容不回顯
責(zé)任編輯:小霞
相關(guān)推薦

2010-04-30 16:02:45

Unix操作系統(tǒng)

2010-05-04 11:59:39

Unix系統(tǒng)

2010-05-05 10:19:51

Unix系統(tǒng)

2010-04-29 10:15:01

Unix系統(tǒng)

2010-05-04 16:33:39

Unix系統(tǒng)

2010-05-04 17:24:28

Unix系統(tǒng)

2010-05-05 15:02:39

Unix系統(tǒng)

2010-05-04 15:33:41

Unix系統(tǒng)

2010-05-04 13:42:18

Unix打印系統(tǒng)

2010-04-30 18:20:23

Unix系統(tǒng)

2010-05-04 09:45:28

Unix系統(tǒng)

2010-04-28 14:30:38

Unix系統(tǒng)Cpio

2010-05-07 16:21:54

Unix系統(tǒng)

2010-05-04 14:36:40

Unix文件系統(tǒng)

2010-04-30 01:28:59

Unix系統(tǒng)

2010-04-19 17:25:31

Unix操作系統(tǒng)

2010-04-20 11:34:26

Unix操作系統(tǒng)

2010-04-29 13:30:20

Unix操作系統(tǒng)

2010-05-05 17:46:32

Unix文件系統(tǒng)

2010-05-06 13:44:44

Unix系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产一二三区电影 | 九九综合 | 九九热这里只有精品6 | 99精品欧美一区二区蜜桃免费 | 欧美亚洲在线视频 | 国产亚洲欧美在线 | 欧美一区二区精品 | 56pao在线 | 性做久久久久久免费观看欧美 | 日韩在线不卡视频 | 夜夜精品视频 | 成人av一区二区在线观看 | 热久色| 久久国产精品久久久久久久久久 | 久久国产成人 | 人人人人人爽 | 欧美在线一区二区三区四区 | 自拍偷拍第一页 | 亚洲精品1区2区3区 91免费看片 | 国产区第一页 | 精品伊人久久 | 成人在线一区二区 | 91影院| 午夜专区 | 国内精品伊人久久久久网站 | 国产精品国产成人国产三级 | 日韩中文一区二区三区 | 狠狠撸在线视频 | 免费黄色片在线观看 | 国产成人免费视频 | 看片wwwwwwwwwww | 欧美日韩91| 国产亚洲精品精品国产亚洲综合 | 久久久久久久久淑女av国产精品 | 最新国产精品精品视频 | 色一情一乱一伦一区二区三区 | 久久激情视频 | 欧美日韩一区二区三区四区 | 98成人网 | 欧美国产日韩在线观看成人 | 国产免费福利小视频 |