導航:首頁 > 編程系統 > linuxkernel獲取時間的函數

linuxkernel獲取時間的函數

發布時間:2024-01-10 10:52:11

㈠ 如何在查看linux內核中的函數

如果要看這兩個函數在標准庫中的定義用ctags或cscope生成索引.h,cscope,可以內跳轉到函數定義,man malloc,聲明見容stdlib。
如果仍然找不到,可以用ctags,si或grep。
windows下用source insight也可,然後查找函數定義,用grep -r 搜索關鍵字,atoi和malloc在C的標准庫中有定義。
1.安裝ctags
在源代碼目錄下運行
ctags -R
這樣,會遞歸生成當前目錄下及其子目錄的tags文件
2.使用VIM根據tags文件查找函數或結構定義。
1.在源碼目錄下查找
vi -t tagname
2.如果要在任意位置使用,則需要把該tags文件添加到~/.vimrc文件中

set tags=/home/money/sda8/2.6232/tags
3.如果要在代碼中實時跟蹤,則游標移動到函數名上,使用CTRL+]鍵,按CTRL+t可以返回。
如果要跟蹤系統函數,使用shift+K可以自動跳轉道游標所在函數的手冊。

㈡ linux中的time函數怎麼實現的利用什麼原理或器件來得到秒數的

asctimeeHPLinux聯盟
ctimeeHPLinux聯盟
gettimeofdayeHPLinux聯盟
gmtimeeHPLinux聯盟
localtimeeHPLinux聯盟
mktimeeHPLinux聯盟
settimeofdayeHPLinux聯盟
timeeHPLinux聯盟
asctime(將時間和日期以字元串格式表示) 相關函數 time,ctime,gmtime,localtimeeHPLinux聯盟
表頭文件 #include<time.h>eHPLinux聯盟
定義函數 char * asctime(const struct tm * timeptr);eHPLinux聯盟
函數說明 asctime()將參數timeptr所指的tm結構中的信息轉換成真實世界所使用的時間日期表示方法,然後將結果以字元串形態返回。此函數已經由時區轉換成當地時間,字元串格式為:「Wed Jun 30 21:49:08 1993\n」eHPLinux聯盟
返回值 若再調用相關的時間日期函數,此字元串可能會被破壞。此函數與ctime不同處在於傳入的參數是不同的結構。eHPLinux聯盟
附加說明 返回一字元串表示目前當地的時間日期。eHPLinux聯盟
範例 #include <time.h>eHPLinux聯盟
main()eHPLinux聯盟
{eHPLinux聯盟<br>time_t timep;eHPLinux聯盟<br>time (&timep);eHPLinux聯盟<br>printf(「%s」,asctime(gmtime(&timep)));eHPLinux聯盟<br>}eHPLinux聯盟
執行 Sat Oct 28 02:10:06 2000eHPLinux聯盟
eHPLinux聯盟
eHPLinux聯盟
eHPLinux聯盟
ctime(將時間和日期以字元串格式表示) 相關函數 time,asctime,gmtime,localtimeeHPLinux聯盟
表頭文件 #include<time.h>eHPLinux聯盟
定義函數 char *ctime(const time_t *timep);eHPLinux聯盟
函數說明 ctime()將參數timep所指的time_t結構中的信息轉換成真實世界所使用的時間日期表示方法,然後將結果以字元串形態返回。此函數已經由時區轉換成當地時間,字元串格式為「Wed Jun 30 21 :49 :08 1993\n」。若再調用相關的時間日期函數,此字元串可能會被破壞。eHPLinux聯盟
返回值 返回一字元串表示目前當地的時間日期。eHPLinux聯盟
範例 #include<time.h>eHPLinux聯盟
main()eHPLinux聯盟
{eHPLinux聯盟<br>time_t timep;eHPLinux聯盟<br>time (&timep);eHPLinux聯盟<br>printf(「%s」,ctime(&timep));eHPLinux聯盟<br>}eHPLinux聯盟
執行 Sat Oct 28 10 : 12 : 05 2000eHPLinux聯盟
eHPLinux聯盟
eHPLinux聯盟
eHPLinux聯盟
gettimeofday(取得目前的時間) 相關函數 time,ctime,ftime,settimeofdayeHPLinux聯盟
表頭文件 #include <sys/time.h>eHPLinux聯盟
#include <unistd.h>eHPLinux聯盟
定義函數 int gettimeofday ( struct timeval * tv , struct timezone * tz )eHPLinux聯盟
函數說明 gettimeofday()會把目前的時間有tv所指的結構返回,當地時區的信息則放到tz所指的結構中。eHPLinux聯盟
timeval結構定義為:eHPLinux聯盟
struct timeval{eHPLinux聯盟<br>long tv_sec; /*秒*/eHPLinux聯盟<br>long tv_usec; /*微秒*/eHPLinux聯盟<br>};eHPLinux聯盟
timezone 結構定義為:eHPLinux聯盟
struct timezone{eHPLinux聯盟<br>int tz_minuteswest; /*和Greenwich 時間差了多少分鍾*/eHPLinux聯盟<br>int tz_dsttime; /*日光節約時間的狀態*/eHPLinux聯盟<br>};eHPLinux聯盟
上述兩個結構都定義在/usr/include/sys/time.h。tz_dsttime 所代表的狀態如下eHPLinux聯盟
DST_NONE /*不使用*/eHPLinux聯盟
DST_USA /*美國*/eHPLinux聯盟
DST_AUST /*澳洲*/eHPLinux聯盟
DST_WET /*西歐*/eHPLinux聯盟
DST_MET /*中歐*/eHPLinux聯盟
DST_EET /*東歐*/eHPLinux聯盟
DST_CAN /*加拿大*/eHPLinux聯盟
DST_GB /*大不列顛*/eHPLinux聯盟
DST_RUM /*羅馬尼亞*/eHPLinux聯盟
DST_TUR /*土耳其*/eHPLinux聯盟
DST_AUSTALT /*澳洲(1986年以後)*/eHPLinux聯盟
返回值 成功則返回0,失敗返回-1,錯誤代碼存於errno。附加說明EFAULT指針tv和tz所指的內存空間超出存取許可權。eHPLinux聯盟
範例 #include<sys/time.h>eHPLinux聯盟
#include<unistd.h>eHPLinux聯盟
main(){eHPLinux聯盟<br>struct timeval tv;eHPLinux聯盟<br>struct timezone tz;eHPLinux聯盟<br>gettimeofday (&tv , &tz);eHPLinux聯盟<br>printf(「tv_sec; %d\n」, tv,.tv_sec) ;eHPLinux聯盟<br>printf(「tv_usec; %d\n」,tv.tv_usec);eHPLinux聯盟<br>printf(「tz_minuteswest; %d\n」, tz.tz_minuteswest);eHPLinux聯盟<br>printf(「tz_dsttime, %d\n」,tz.tz_dsttime);eHPLinux聯盟<br>}eHPLinux聯盟
執行 tv_sec: 974857339eHPLinux聯盟
tv_usec:136996eHPLinux聯盟
tz_minuteswest:-540eHPLinux聯盟
tz_dsttime:0eHPLinux聯盟
eHPLinux聯盟
eHPLinux聯盟
eHPLinux聯盟
gmtime(取得目前時間和日期) 相關函數 time,asctime,ctime,localtimeeHPLinux聯盟
表頭文件 #include<time.h>eHPLinux聯盟
定義函數 struct tm*gmtime(const time_t*timep);eHPLinux聯盟
函數說明 gmtime()將參數timep 所指的time_t 結構中的信息轉換成真實世界所使用的時間日期表示方法,然後將結果由結構tm返回。eHPLinux聯盟
結構tm的定義為eHPLinux聯盟
struct tmeHPLinux聯盟
{eHPLinux聯盟<br>int tm_sec;eHPLinux聯盟<br>int tm_min;eHPLinux聯盟<br>int tm_hour;eHPLinux聯盟<br>int tm_mday;eHPLinux聯盟<br>int tm_mon;eHPLinux聯盟<br>int tm_year;eHPLinux聯盟<br>int tm_wday;eHPLinux聯盟<br>int tm_yday;eHPLinux聯盟<br>int tm_isdst;eHPLinux聯盟<br>};eHPLinux聯盟
int tm_sec 代表目前秒數,正常范圍為0-59,但允許至61秒eHPLinux聯盟
int tm_min 代表目前分數,范圍0-59eHPLinux聯盟
int tm_hour 從午夜算起的時數,范圍為0-23eHPLinux聯盟
int tm_mday 目前月份的日數,范圍01-31eHPLinux聯盟
int tm_mon 代表目前月份,從一月算起,范圍從0-11eHPLinux聯盟
int tm_year 從1900 年算起至今的年數eHPLinux聯盟
int tm_wday 一星期的日數,從星期一算起,范圍為0-6eHPLinux聯盟
int tm_yday 從今年1月1日算起至今的天數,范圍為0-365eHPLinux聯盟
int tm_isdst 日光節約時間的旗標eHPLinux聯盟
此函數返回的時間日期未經時區轉換,而是UTC時間。eHPLinux聯盟
返回值 返回結構tm代表目前UTC 時間eHPLinux聯盟
範例 #include <time.h>eHPLinux聯盟
main(){eHPLinux聯盟<br>char *wday[]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};eHPLinux聯盟
time_t timep;eHPLinux聯盟
struct tm *p;eHPLinux聯盟
time(&timep);eHPLinux聯盟
p=gmtime(&timep);eHPLinux聯盟
printf(「%d%d%d」,(1900+p->tm_year), (1+p->tm_mon),p->tm_mday);eHPLinux聯盟
printf(「%s%d;%d;%d\n」, wday[p->tm_wday], p->tm_hour, p->tm_min, p->tm_sec);eHPLinux聯盟
}eHPLinux聯盟
執行 2000/10/28 Sat 8:15:38eHPLinux聯盟
eHPLinux聯盟
eHPLinux聯盟
eHPLinux聯盟
localtime(取得當地目前時間和日期) 相關函數 time, asctime, ctime, gmtimeeHPLinux聯盟
表頭文件 #include<time.h>eHPLinux聯盟
定義函數 struct tm *localtime(const time_t * timep);eHPLinux聯盟
函數說明 localtime()將參數timep所指的time_t結構中的信息轉換成真實世界所使用的時間日期表示方法,然後將結果由結構tm返回。結構tm的定義請參考gmtime()。此函數返回的時間日期已經轉換成當地時區。eHPLinux聯盟
返回值 返回結構tm代表目前的當地時間。eHPLinux聯盟
範例 #include<time.h>eHPLinux聯盟
main(){eHPLinux聯盟<br>char *wday[]={「Sun」,」Mon」,」Tue」,」Wed」,」Thu」,」Fri」,」Sat」};eHPLinux聯盟
time_t timep;eHPLinux聯盟
struct tm *p;eHPLinux聯盟
time(&timep);eHPLinux聯盟
p=localtime(&timep); /*取得當地時間*/eHPLinux聯盟
printf (「%d%d%d 」, (1900+p->tm_year),( l+p->tm_mon), p->tm_mday);eHPLinux聯盟
printf(「%s%d:%d:%d\n」, wday[p->tm_wday],p->tm_hour, p->tm_min, p->tm_sec);eHPLinux聯盟
}eHPLinux聯盟
執行 2000/10/28 Sat 11:12:22eHPLinux聯盟
eHPLinux聯盟
eHPLinux聯盟
eHPLinux聯盟
mktime(將時間結構數據轉換成經過的秒數) 相關函數 time,asctime,gmtime,localtimeeHPLinux聯盟
表頭文件 #include<time.h>eHPLinux聯盟
定義函數 time_t mktime(strcut tm * timeptr);eHPLinux聯盟
函數說明 mktime()用來將參數timeptr所指的tm結構數據轉換成從公元1970年1月1日0時0分0 秒算起至今的UTC時間所經過的秒數。eHPLinux聯盟
返回值 返回經過的秒數。eHPLinux聯盟
範例 /* 用time()取得時間(秒數),利用localtime()eHPLinux聯盟
轉換成struct tm 再利用mktine()將struct tm轉換成原來的秒數*/eHPLinux聯盟
#include<time.h>eHPLinux聯盟
main()eHPLinux聯盟
{eHPLinux聯盟<br>time_t timep;eHPLinux聯盟<br>strcut tm *p;eHPLinux聯盟<br>time(&timep);eHPLinux聯盟<br>printf(「time() : %d \n」,timep);eHPLinux聯盟<br>p=localtime(&timep);eHPLinux聯盟<br>timep = mktime(p);eHPLinux聯盟<br>printf(「time()->localtime()->mktime():%d\n」,timep);eHPLinux聯盟<br>}eHPLinux聯盟
執行 time():974943297eHPLinux聯盟
time()->localtime()->mktime():974943297eHPLinux聯盟
eHPLinux聯盟
eHPLinux聯盟
eHPLinux聯盟
settimeofday(設置目前時間) 相關函數 time,ctime,ftime,gettimeofdayeHPLinux聯盟
表頭文件 #include<sys/time.h>eHPLinux聯盟
#include<unistd.h>eHPLinux聯盟
定義函數 int settimeofday ( const struct timeval *tv,const struct timezone *tz);eHPLinux聯盟
函數說明 settimeofday()會把目前時間設成由tv所指的結構信息,當地時區信息則設成tz所指的結構。詳細的說明請參考gettimeofday()。注意,只有root許可權才能使用此函數修改時間。eHPLinux聯盟
返回值 成功則返回0,失敗返回-1,錯誤代碼存於errno。eHPLinux聯盟
錯誤代碼 EPERM 並非由root許可權調用settimeofday(),許可權不夠。eHPLinux聯盟
EINVAL 時區或某個數據是不正確的,無法正確設置時間。eHPLinux聯盟
eHPLinux聯盟
eHPLinux聯盟
eHPLinux聯盟
time(取得目前的時間) 相關函數 ctime,ftime,gettimeofdayeHPLinux聯盟
表頭文件 #include<time.h>eHPLinux聯盟
定義函數 time_t time(time_t *t);eHPLinux聯盟
函數說明 此函數會返回從公元1970年1月1日的UTC時間從0時0分0秒算起到現在所經過的秒數。如果t 並非空指針的話,此函數也會將返回值存到t指針所指的內存。eHPLinux聯盟
返回值 成功則返回秒數,失敗則返回((time_t)-1)值,錯誤原因存於errno中。eHPLinux聯盟
範例 #include<time.h>eHPLinux聯盟
mian()eHPLinux聯盟
{eHPLinux聯盟<br>int seconds= time((time_t*)NULL);eHPLinux聯盟<br>printf(「%d\n」,seconds);eHPLinux聯盟<br>}eHPLinux聯盟
執行 9.73E+08

閱讀全文

與linuxkernel獲取時間的函數相關的資料

熱點內容
linux連接ftp 瀏覽:512
es文件瀏覽器視頻筆記 瀏覽:874
mac無法打開描述文件 瀏覽:134
什麼軟體打文件 瀏覽:53
資料庫無數據變成0 瀏覽:899
名企筆試如何刷編程題 瀏覽:49
js跳到頁面某地 瀏覽:550
jsp展示clob欄位 瀏覽:779
nyx在網路上是什麼意思 瀏覽:145
樂播農業app是什麼 瀏覽:530
編程框架如何開發 瀏覽:136
金庸群俠傳3修改代碼 瀏覽:712
檢察院的文件類別有哪些 瀏覽:793
怎麼把九游殘留數據刪除 瀏覽:828
有什麼女生主動聊天的app 瀏覽:436
有哪些可以督促自己的app 瀏覽:244
用USB傳輸視頻文件夾顯示為空 瀏覽:710
恢復文件軟體免費版手機 瀏覽:648
lg怎麼隱藏文件 瀏覽:836
蘋果免費讀書app推薦 瀏覽:497

友情鏈接