程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C說話中settimeofday函數和gettimeofday函數的應用

C說話中settimeofday函數和gettimeofday函數的應用

編輯:關於C++

C說話中settimeofday函數和gettimeofday函數的應用。本站提示廣大學習愛好者:(C說話中settimeofday函數和gettimeofday函數的應用)文章只能為提供參考,不一定能成為您想要的結果。以下是C說話中settimeofday函數和gettimeofday函數的應用正文


C說話settimeofday()函數:設置以後時光戳
頭文件:

#include <sys/time.h>  #include <unistd.h>

界說函數:

int settimeofday(const struct timeval *tv, const struct timezone *tz);

函數解釋:settimeofday()會把今朝時光設成由tv 所指的構造信息,本地時區信息則設成tz 所指的構造。具體的解釋請參考gettimeofday()。

留意,在Linux下,只要root 權限能力應用此函數修正時光。

前往值:勝利則前往0,掉敗前往-1,毛病代碼存於errno。

毛病代碼:
EPERM  並不是由root 權限挪用settimeofday(),權限不敷。
EINVAL  時區或某個數據是不准確的,沒法准確設置時光。

C說話gettimeofday()函數:獲得以後時光
頭文件:

#include <sys/time.h>  #include <unistd.h>

界說函數:int gettimeofday (struct timeval * tv, struct timezone * tz);

函數解釋:gettimeofday()會把今朝的時光有tv 所指的構造前往,本地時區的信息則放到tz 所指的構造中。

timeval 構造界說為:

struct timeval{
  long tv_sec; //秒
  long tv_usec; //微秒
};

timezone 構造界說為:

struct timezone
{
  int tz_minuteswest; //和Greenwich 時光差了若干分鐘
  int tz_dsttime; //日光勤儉時光的狀況
};

上述兩個構造都界說在/usr/include/sys/time.h. tz_dsttime 所代表的狀況以下

  DST_NONE //不應用
  DST_USA //美國
  DST_AUST //澳洲
  DST_WET //西歐
  DST_MET //中歐
  DST_EET //東歐
  DST_CAN //加拿年夜
  DST_GB //年夜不列顛
  DST_RUM //羅馬尼亞
  DST_TUR //土耳其
  DST_AUSTALT //澳洲(1986 年今後)

前往值:勝利則前往0,掉敗前往-1,毛病代碼存於errno。

附加解釋:EFAULT 指針tv 和tz 所指的內存空間超越存取權限。

典范

#include <sys/time.h>
#include <unistd.h>
main(){
  struct timeval tv;
  struct timezone tz;
  gettimeofday (&tv, &tz);
  printf("tv_sec; %d\n", tv.tv_sec);
  printf("tv_usec; %d\n", tv.tv_usec);
  printf("tz_minuteswest; %d\n", tz.tz_minuteswest);
  printf("tz_dsttime, %d\n", tz.tz_dsttime);
}

履行成果:

tv_sec: 974857339
tv_usec:136996
tz_minuteswest:-540
tz_dsttime:0

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved