C語言中settimeofday函數(shù)和gettimeofday函數(shù)的使用
C語言settimeofday()函數(shù):設(shè)置當(dāng)前時(shí)間戳
頭文件:
#include <sys/time.h> #include <unistd.h>
定義函數(shù):
int settimeofday(const struct timeval *tv, const struct timezone *tz);
函數(shù)說明:settimeofday()會把目前時(shí)間設(shè)成由tv 所指的結(jié)構(gòu)信息,當(dāng)?shù)貢r(shí)區(qū)信息則設(shè)成tz 所指的結(jié)構(gòu)。詳細(xì)的說明請參考gettimeofday()。
注意,在Linux下,只有root 權(quán)限才能使用此函數(shù)修改時(shí)間。
返回值:成功則返回0,失敗返回-1,錯(cuò)誤代碼存于errno。
錯(cuò)誤代碼:
EPERM 并非由root 權(quán)限調(diào)用settimeofday(),權(quán)限不夠。
EINVAL 時(shí)區(qū)或某個(gè)數(shù)據(jù)是不正確的,無法正確設(shè)置時(shí)間。
C語言gettimeofday()函數(shù):獲取當(dāng)前時(shí)間
頭文件:
#include <sys/time.h> #include <unistd.h>
定義函數(shù):int gettimeofday (struct timeval * tv, struct timezone * tz);
函數(shù)說明:gettimeofday()會把目前的時(shí)間有tv 所指的結(jié)構(gòu)返回,當(dāng)?shù)貢r(shí)區(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 時(shí)間差了多少分鐘 int tz_dsttime; //日光節(jié)約時(shí)間的狀態(tài) };
上述兩個(gè)結(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,錯(cuò)誤代碼存于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)文章
Assert(斷言實(shí)現(xiàn)機(jī)制深入剖析)
言前后最好空一格[編程風(fēng)格的問題,按你自已的喜好,適合自已就最好]。斷言只是用來檢查程序的邏輯正確性,不能代替條件替換。斷言比printf語句這種形式的打印好使2013-09-09C/C++實(shí)現(xiàn)快速排序算法的兩種方式實(shí)例
快速排序是一種采用分治思想,在實(shí)踐中通常運(yùn)行較快一種排序算法,這篇文章主要給大家介紹了關(guān)于C/C++實(shí)現(xiàn)快速排序的兩種方式的相關(guān)資料,文中給出了詳細(xì)的示例代碼,需要的朋友可以參考下2021-08-08C/C++自主分配出現(xiàn)double free or corruption問題解決
這篇文章主要為大家介紹了C/C++出現(xiàn)double free or corruption問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04QT布局管理詳解QVBoxLayout與QHBoxLayout及QGridLayout的使用
在這篇文章中,你將知道水平布局、垂直布局、網(wǎng)格布局如何輕松上手,以純代碼方式展示。對齊方式,大小設(shè)置,圖片頭像匹配標(biāo)簽,布局器里面的組件大小隨意切換大小,認(rèn)真看完這篇文章,QT布局管理器熟練使用2022-06-06