資源簡介
在linux中實現(xiàn)一個命令執(zhí)行程序doit,它執(zhí)行命令行參數(shù)中的命令,之后統(tǒng)計
1)命令執(zhí)行占用的CPU時間(包括用戶態(tài)和系統(tǒng)態(tài)時間,以毫秒為單位),
2)命令執(zhí)行的時間,
3)進程被搶占的次數(shù),
4)進程主動放棄CPU的次數(shù),
5)進程執(zhí)行過程中發(fā)生缺頁的次數(shù)
代碼片段和文件信息
#include
#include
#include
#include
#include
#include
#include
void?printHelpInfo(){
?????printf(“命令執(zhí)行程序doit,它執(zhí)行命令行參數(shù)中的命令,之后統(tǒng)計:\n“);
?????printf(“1)命令執(zhí)行占用的CPU時間(包括用戶態(tài)和系統(tǒng)態(tài)時間,以毫秒為單位),\n“);
?????printf(“2)命令執(zhí)行的時間,\n“);
?????printf(“3)進程被搶占的次數(shù),\n“);
?????printf(“4)進程主動放棄CPU的次數(shù),\n“);
?????printf(“5)進程執(zhí)行過程中發(fā)生缺頁的次數(shù)\n“);
?????printf(“命令格式:?doit?programName?[parameter1]?[parameter2]?..\n“?);
?????printf(“例如;:doit?ls?-l\n“);
}
extern?int?errno;
int?main(int?argc?char*argv[]){
?????printf(“輸入doit?-h?獲取幫助\n“);
????if(argc<2){
????????printHelpInfo();
????}else??if(strcmp(“-h“argv[1])==0){
?????????printHelpInfo();
????}else{
????????//準備命令參數(shù)
????????char?command[200];
????????strcpy(commandargv[1]);
????????int?i;
????????for(?i=2;i ????????????strcat(command“?“);
????????????strcat(commandargv[i]);
????????}
????????//獲取程序執(zhí)行的時間
????????struct?timeval?startend;
????????gettimeo
評論
共有 條評論