C語言中settimeofday函數(shù)和gettimeofday函數(shù)的使用
C語言settimeofday()函數(shù):設(shè)置當(dāng)前時間戳
頭文件:
#include <sys/time.h> #include <unistd.h>
定義函數(shù):
int settimeofday(const struct timeval *tv, const struct timezone *tz);
函數(shù)說明:settimeofday()會把目前時間設(shè)成由tv 所指的結(jié)構(gòu)信息,當(dāng)?shù)貢r區(qū)信息則設(shè)成tz 所指的結(jié)構(gòu)。詳細(xì)的說明請參考gettimeofday()。
注意,在Linux下,只有root 權(quán)限才能使用此函數(shù)修改時間。
返回值:成功則返回0,失敗返回-1,錯誤代碼存于errno。
錯誤代碼:
EPERM 并非由root 權(quán)限調(diào)用settimeofday(),權(quán)限不夠。
EINVAL 時區(qū)或某個數(shù)據(jù)是不正確的,無法正確設(shè)置時間。
C語言gettimeofday()函數(shù):獲取當(dāng)前時間
頭文件:
#include <sys/time.h> #include <unistd.h>
定義函數(shù):int gettimeofday (struct timeval * tv, struct timezone * tz);
函數(shù)說明:gettimeofday()會把目前的時間有tv 所指的結(jié)構(gòu)返回,當(dāng)?shù)貢r區(qū)的信息則放到tz 所指的結(jié)構(gòu)中。
timeval 結(jié)構(gòu)定義為:
struct timeval{
long tv_sec; //秒
long tv_usec; //微秒
};
timezone 結(jié)構(gòu)定義為:
struct timezone
{
int tz_minuteswest; //和Greenwich 時間差了多少分鐘
int tz_dsttime; //日光節(jié)約時間的狀態(tài)
};
上述兩個結(jié)構(gòu)都定義在/usr/include/sys/time.h. tz_dsttime 所代表的狀態(tài)如下
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 所指的內(nèi)存空間超出存取權(quán)限。
范例
#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);
}
執(zhí)行結(jié)果:
tv_sec: 974857339 tv_usec:136996 tz_minuteswest:-540 tz_dsttime:0
相關(guān)文章
C/C++寬窄字符轉(zhuǎn)換與輸出的多種實現(xiàn)方法
本文主要介紹了C/C++寬窄字符轉(zhuǎn)換與輸出的多種實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
C語言數(shù)據(jù)結(jié)構(gòu)中定位函數(shù)Index的使用方法
這篇文章主要介紹了C語言數(shù)據(jù)結(jié)構(gòu)中定位函數(shù)Index的使用方法的相關(guān)資料,希望通過本文能幫助到大家,讓大家理解這部分內(nèi)容,需要的朋友可以參考下2017-10-10
Qt專欄之模態(tài)與非模態(tài)對話框的實現(xiàn)
這篇文章主要介紹了Qt專欄之模態(tài)與非模態(tài)對話框的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04

