#include time_t time(time_t *ptr);
這個函式返回從unix新紀元( 2023年1月1日00:00:00 utc )開始到現在經過的秒數,並且是按照utc協調時間進行計算,統稱為日曆時間。它的精度是秒。
#include int clock_gettime(clockid_t clock_id, struct timespec *tsp);
int clock_settime(clockid_t clock_id, struct timespec *tsp);
返回值:正確返回0,出錯返回-1
posix標準定義的時鐘支援,clock_id可選擇以下值:
clock_realtime: 實時系統時間,和time功能一樣,但是返回的時間值精度可能會更高
clock_monotonic: 從系統啟動開始算起的單調增長時間,注意不包含suspend時間
clock_process_cputime_id: 呼叫程序的cpu時間
clock_thread_cputime_id: 呼叫執行緒的cpu時間
對應的時間結構體:
struct timespec;
#include int gettimeofday(struct timeval *restrict tp, struct timezone *gz);
int settimeofday(const struct timeval *tv, const struct timezone *gz);
這兩個函式的實現依賴於平台,可能不具有一致性,有的平台tz只接受null為輸入值,linux平台支援傳入時區,返回的是以距離unix新紀元開始計算到當前的時間值。和time一樣,但是精度能達到微秒級別。
對應的時間結構體:
struct timeval
;
#include struct tm *gmtime(const time_t *calptr);
struct tm *localtime(const time_t *calptr);
time_t mktime(struct tm *tmptr);
gmtime是用於把日曆時間轉換為utc時間的年、月、日、時、分、秒的分解結構體,localtime用於把日曆時間轉換為本地時間的分解結構體,和gmtime相比,考慮了本地時區和夏令時標誌進行的轉換。
mktime是把本地時間轉換為日曆時間的函式,一定注意的是必須是本地分解時間,它相當於localtime的逆過程。
分解時間的結構體:
struct tm ;
示例:
#include #include #include #include static void show_time_t(void)
static void show_timeval(void)
static void show_timespec(void)
static void show_utc_time(void)
static void show_localtime(void)
int main(int argc, char *ar**)
執行結果如下:
$ ./time
time_t now: 1553755961
timeval.tv_sec:1553755961 timeval.tv_usec:903515
timespec.tv_sec:1553755961 timespec.tv_nsec:903521280
utc:2019-2-28 6:52:41
local:2019-2-28 14:52:41
Linux應用層檢視系統時間的方法
date d awk f.proc uptime second ago y m d h m s 結果顯示 3 通過 proc uptime檔案計算系統執行時間,指令如下 cat proc uptime awk f.結果顯示 4 who命令 who b 檢視最後一次系統啟動的時間 5 last reb...
表示層 應用層
表示層 功能 為異種機通訊提供一種公共語言,以便能進行互操作。這種型別的服務之所以需要,是因為不同的計算機體系結構使用的資料表示法不同。例如,ibm主機使用ebcdic編碼,而大部分pc機使用的是ascii碼。在這種情況下,便需要表示層來完成這種轉換。應用層 包含了通常要使用的協議 http協議 超...
應用層協議
應用層協議定義了執行在不同端系統上的應用程式程序如何相互傳遞訊息。特別是定義了 交換的訊息型別,如請求訊息和響應訊息。各種訊息型別的語法,如訊息中的各個字段及其詳細描述。欄位的語義,即包含在字段中的資訊的含義。程序何時 如何傳送訊息及對訊息進行響應的規則。有些應用層協議是由rfc文件定義的,因此它們...