參考資料 linux函式setitimer 傳送門
(北京郵電大學電腦科學與技術系作業系統實驗——2.2核心定時器)
linux作業系統下
記錄乙個程序執行時所占用的real time, cpu time,user time ,kernel time
參考**及其精講
#include
#include
#include
static
void
sighandle
(int);
//自定義訊號處理函式
static
long realsecond =0;
static
long vtsecond =0;
static
long profsecond =0;
static
struct itimerval realt,virtt,proft;
intmain()
}//用計時器的當前值寫value指向的結構體
getitimer
(itimer_prof,
&proft)
;getitimer
(itimer_real,
&realt)
;getitimer
(itimer_virtual,
&virtt)
;printf
("\n");
/*settimer工作機制是,先對it_value倒計時,當it_value為零時觸發訊號,然後重置為it_interval,繼續對it_value倒計時,一直這樣迴圈下去。
基於此機制,setitimer既可以用來延時執行,也可定時執行。
*//*這裡realt.it_value_tv_sec的值為0-10,並且迴圈執行,從10開始,每秒遞減,當為0的時候觸發sighandle()事件,同時初始化為10。*/
moresec =
10- realt.it_value.tv_sec;
值逐漸遞減,由10s開始遞減
moremsec =
(1000000
- realt.it_value.tv_usec)
/1000
;// 轉換成ms
printf
("realtime = %ld sec, %ld msec\n"
,realsecond+moresec,moremsec);
moresec =
10- proft.it_value.tv_sec;
moremsec =
(1000000
- proft.it_value.tv_usec)
/1000
;printf
("cputime = %ld sec, %ld msec\n"
,profsecond+moresec,moremsec);
moresec =
10- virtt.it_value.tv_sec;
moremsec =
(1000000
- virtt.it_value.tv_usec)
/1000
;printf
("usertime = %ld sec, %ld msec\n"
,vtsecond+moresec,moremsec);/*
t1=使用者態執行時間
t2=使用者態+核心執行時間
t2-t1 = 核心執行時間 kernel time
*/
t1 =(10
- proft.it_value.tv_sec)
*1000+(
1000000
- proft.it_value.tv_usec)
/1000
+ profsecond*
10000
; t2 =(10
- virtt.it_value.tv_sec)
*1000+(
1000000
- virtt.it_value.tv_usec)
/1000
+ vtsecond*
10000
; moresec =
(t1 - t2)
/1000
; moremsec =
(t1 - t2)
%1000
;printf
("kerneltime = %ld sec, %ld msec\n"
,moresec,moremsec)
;fflush
(stdout);
}static
void
sighandle
(int s)
}
linux下轉碼函式
linux沒有widechartomultibyte,multibytetowidechar,我們通常.linux下面的沒有命名為 widechartomultibyte 和 multibytetowidechar 函式,widechartomultibyte,multibytetowidechar...
linux下的Select函式
part1 fd set errorfds同上面兩個引數的意圖,用來監視檔案錯誤異常。struct timeval timeout是select的超時時間,這個引數至關重要,它可以使select處於三種狀態,第一,若將null以形參傳入,即不傳入時間結構,就是將select置於阻塞狀態,一定等到監視...
LINUX下OPEN函式簡介
open 函式用於開啟和建立檔案。以下是 open 函式的簡單描述 fcntl.h int open const char pathname,int oflag,mode t mode 返回值 成功則返回檔案描述符,否則返回 1 對於 open 函式來說,第三個引數 僅當建立新檔案時才使用,用於指定...