Linux time()函式解析
time() 函式語法如下:
所需標頭檔案 | #include <time.h> |
函式原型 | time_t time(time_t * timer) |
引數說明 | timer=NULL時得到機器日曆時間; timer=時間數值時,用於設定日曆時間; |
函式返回值 | 機器日曆時間 |
功能: 獲取當前的系統時間,返回的結果是一個time_t型別,其實就是一個大整數,其值表示從CUT(Coordinated Universal Time)時間1970年1月1日00:00:00(稱為UNIX系統的Epoch時間)到當前時刻的秒數。然後呼叫localtime將time_t所表示的CUT時間轉換為本地時間(我們是+8區,比CUT多8個小時)並轉成struct tm型別。
struct tm 型別的各資料成員分別表示年月日時分秒。
struct tm
{
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
};
補充說明:time函式的原型也可以理解為 long time(long *tloc),即返回一個long型整數。因為在time.h這個標頭檔案中time_t 實際上就是:
#ifndef _TIME_T_DEFINED
#define _TIME_T_DEFINED /* avoid multiple defines of time_t */
typedef long time_t; /* time value */
#endif
函式應用舉例
程式例1
time函式獲得日曆時間。日曆時間,是用“從一個標準時間點到此時的時間經過的秒數”來表示的時間。這個標準時間點對不同的編譯器來說會有所不同,但對一個編譯系統來說,這個標準時間點是不變的,該編譯系統中的時間對應的日曆時間都通過該標準時間點來衡量,所以可以說日曆時間是“相對時間”,但是無論你在哪一個時區,在同一時刻對同一個標準時間點來說,日曆時間都是一樣的。
#include <time.h>
#include <stdio.h>
int main(void)
{
time_t t;
<span style="white-space:pre"> </span>t = time(NULL);
printf("The number of seconds since January 1, 1970 is %ld",t);
return 0;
}
執行結果如下:
[email protected]:~/qiang/time$ ./time1
The number of seconds since January 1, 1970 is 1452345470
[email protected]:~/qiang/time$
程式例2:
time函式也常用於隨機數的生成,用日曆時間作為種子。
#include <stdio.h>
#include <time.h>
#include<stdlib.h>
int main(void)
{
int i;
srand((unsigned) time(NULL));
printf("ten random numbers from 0 to 99:\n");
for(i = 0;i < 10;i++)
{
printf("%d\n",rand()%100);
}
return 0;
}
執行結果如下:
[email protected]:~/qiang/time$ ./time2
ten random numbers from 0 to 99:
22
0
58
7
29
90
74
7
95
55
[email protected]:~/qiang/time$
程式例3:
用time() 函式結合其他函式(如:localtime、gmtime、asctime、ctime)可以獲得當前系統時間或是標準時間。
1)localtime() 函式
函式功能:返回一個以tm結構表達的機器時間資訊;
所需標頭檔案 | #include <time.h> |
函式原型 | struct tm *localtime(const time_t *timep) |
引數說明 | timerp為time(NULL)獲得的日曆時間; |
函式返回值 | 以tm結構表達的時間; |
使用示例:
#include <time.h>
#include <stdio.h>
int main()
{
time_t timer;
struct tm *tblock;
timer = time(NULL);
tblock = localtime(&timer);
printf("Local time is: %s",asctime(tblock));
return 0;
}
執行結果如下:
[email protected]:~/qiang/time$ ./localtime
Local time is: Sat Jan 9 21:37:13 2016
[email protected]:~/qiang/time$
2)asctime() 函式
函式功能:asctime()將引數timeptr所指的tm結構中的資訊轉換成真實世界所使用的時間日期表示方法,然後將結果以字串形態返回。此函式已經由時區轉換成當地時間,字串格式為: "Wed Jun 30 21:49:08 1993/n"
所需標頭檔案 | #include <time.h> |
函式原型 | char *asctime(struct tm *ptr) |
引數說明 | ptr 為 struct tm 型別的時間結構體 |
函式返回值 | 返回的時間字串格式為:星期,月,日,小時:分:秒,年 |
示例如下:
#include <stdio.h>
#include <string.h>
#include <time.h>
int main()
{
struct tm t;
char str[80];
t.tm_sec = 1;
t.tm_min = 3;
t.tm_hour = 7;
t.tm_mday = 22;
t.tm_mon = 11;
t.tm_year = 56;
t.tm_wday = 4;
t.tm_yday = 0;
t.tm_isdst = 0;
strcpy(str,asctime(&t));
printf("%s",str);
return 0;
}
執行結果如下:
[email protected]:~/qiang/time$ ./asctime
Thu Dec 22 07:03:01 1956
[email protected]:~/qiang/time$
3)ctime() 函式
函式功能:ctime () 將引數timep所指的time_t結構中的資訊轉換成真實世界所使用的時間日期表示方法,然後將結果以字串形態返回。此函式已經由時區轉換成當地時間,字串格式為"Wed Jun 30 21 :49 :08 1993/n"。若再呼叫相關的時間日期函式,此字串可能會被破壞。
所需標頭檔案 | #include <time.h> |
函式原型 | char *ctime(const time_t *timep); |
引數說明 | timep 是由 time(NULL) 得到的日曆時間; |
函式返回值 | 返回字串格式:星期,月,日,小時:分:秒,年 |
示例如下:
#include <stdio.h>
#include <time.h>
int main()
{
time_t t;
time(&t);
printf("Today's date and time: %s",ctime(&t));
return 0;
}
執行結果如下:
[email protected]:~/qiang/time$ ./ctime
Today's date and time: Sat Jan 9 21:53:51 2016
[email protected]:~/qiang/time$
相關推薦
Linux time()函式解析
time() 函式語法如下: 所需標頭檔案 #include <time.h> 函式原型 time_t time(time_t * timer) 引數說明 timer=NULL時得到機器日曆時間; timer=時間數值時,用於設定日曆時間; 函式返回值 機器日
Linux下time函式
Linux下time函式都在time.h標頭檔案中。 1、標頭檔案 和時間有關的標頭檔案有以下幾個: time.h sys/time.h sys/times.h sys/timeb.h sys/timex.h time.h是C標準庫的標頭檔案,其餘sys開頭的都是Linux系統自己的標頭檔
linux之select函式解析
select()的機制中提供一fd_set的資料結構,實際上是一long型別的陣列, 每一個數組元素都能與一開啟的檔案控制代碼(不管是Socket控制代碼,還是其他 檔案或命名管道或裝置控制代碼)建立聯絡,建立聯絡的工作由程式設計師完成, 當呼叫select()時,由核心根
linux之dup和dup2函式解析
系統呼叫dup和dup2能夠複製檔案描述符。dup返回新的檔案檔案描述符(沒有用的檔案描述符最小的編號)。dup2可以讓使用者指定返回的檔案描述符的值,如果需要,則首先接近newfd的值,他通常用來重新開啟或者重定向一個檔案描述符。 在linux下,通過open開啟以檔案後
Linux C函式strtok解析
1. 今天看了看strtok函式,特意找了下Linux核心2.0.1版本的程式碼,因為在更高版本(至少2.6)已經使用strsep替換了該函式. 函式原型: char * strtok(char * s,const char * ct) 使用第二個引數ct中的分隔符字串,分
linux之chdir函式解析
[[email protected] chdir]$ ls chdir.c [[email protected] chdir]$ cat chdir.c /************************************************
Linux 關於time()函式的使用注意
函式原型: #include <time.h> time_t time(time_t *t); 獲取當前時間,即從1970年1月1日 00:00:00到當前時刻的秒數。 這裡注意,這個當前時間並不是系統顯示的時間(date所看到的時間), 而是從0時區的1970
Linux time() localtime() mktime()函式
函式簡介 函式名: time 標頭檔案:time.h 函式原型:time_t time(time_t * timer) 功能: 獲取當前的系統時間,返回的結果是一個time_t型別,其實就是一個大整數,其值表示從CUT(Coordinated Un
date "+%s"與linux c time函式的關係
1、date "+%s" 從1970年1月1日00:00:00到目前經歷的秒數 2、linux c 函式,time和localtime time:此函式會返回從公元1970年1月1日的UTC時間從0時0分0秒算起到現在所經過
Linux命令列解析函式getopt()
#include <srdio.h> #include <unistd.h> int main(int argc, char *argv[]) { int ch;
Linux 系統DNS解析
linux 基礎運維學習1. 高速緩存dns服務器修改server的配置文件/etc/named.conf 10options { 11 listen-on port 53 { any; }; #監聽所有端口的bind服務 12 listen-on-v6 port 53 { ::1; }; 13
改變Linux的DNS解析順序(DNS到hosts)
target hosts bsp lin 才會 files linux中 參考 div 在Linux中,往往解析一個域名時,先會找/etc/hosts文件,如果/etc/hosts文件沒有對應,才會去找DNS,那麽有什麽方式,讓主機先找DNS呢? 當然有,在/etc/ns
Linux目錄結構解析
ptime blog 其他 目錄命令 .so 進程信息 roc 用戶 存在 Linux的文件系統是采用層級的樹狀目錄結構,最上層目錄根目錄是‘/‘(類似於windows C盤的 C:),然後再在此目錄下創建其他目錄,Linux有一些默認的目錄結構。深刻理解Linux下的文件
Linux常用命令解析(圖解ls)
Linux常用命令解析(圖解ls) (作者:Baron_wu) ls :顯示當前目錄下的檔案 Ls -a:顯示當前目錄下的所有檔案(包括隱藏檔案) Ls -l:以單獨一列顯示內容列表(列出許可權,所有者及其他資訊) Ls -ls:按檔案大小排序檔案內容 Ls -lar:以相反
影象識別常用到的函式解析
影象識別中常用到的函式解析 1.損失函式 計算labels和logits之間的交叉熵(cross entropy) tf.nn.softmax_cross_entropy_with_logits(
linux搭建分離解析的域名伺服器
linux搭建分離解析的域名伺服器 分離解析主要是根據不同的客戶端提供不同的域名解析記錄,來自不同地址的客戶端請求解析同一域名時,提供不同的解析結果。 實驗內容: 需要三臺主機,一臺Linux提供分離解析服務,一臺客戶端作為Internet外網使用者,一臺客戶機作為公司內網區域網使用者。 Li
tensorflow學習筆記各個函式解析
弄清以下問題的含義: 1. tf.train.global_step 獲取全域性訓練步數, 由 各種損失函式優化器中的minimize()方法負責自動加1 sess.run( fetches, feed_dict=None, o
Linux pipe函式
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
Sigmoid函式解析
Sigmoid函式,即f(x)=1/(1+e-x)。是神經元的非線性作用函式。廣泛應用在神經網路中。 神經網路的學習是基於一組樣本進行的,它包括輸入和輸出(這裡用期望輸出表示),輸入和輸出有多少個分量就有多少個輸入和輸出神經元與之對應。最初神經網路的權值(Weight)和閾值(Thresho
Small RTOS OSStart 函式解析
Small RTOS 是在 Keil C51 上面 編譯的。 看如下程式碼: #include "config.h" void main(void) { TMOD = (TMOD & 0XF0) | 0X01; TL0 = 0x0; TH0 = 0x0; TR0 =