C語言中settimeofday函數和gettimeofday函數的使用_C 語言

來源:互聯網
上載者:User

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: 974857339tv_usec:136996tz_minuteswest:-540tz_dsttime:0

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.