资源简介
1.在linux中实现一个命令执行程序doit,它执行命令行参数中的命令,之后统计
1)命令执行占用的CPU时间(包括用户态和系统态时间,以毫秒为单位),
2)命令执行的时间,
3)进程被抢占的次数,
4)进程主动放弃CPU的次数,
5)进程执行过程中发生缺页的次数
代码片段和文件信息
#include
#include
#include
#include
#include
#define NDEBUG
#define MAX_CMD_LEN 256//the max length of shell commands
#define MAX_TOKEN_NUM 80//the largest number of tokens
#define HOME “/“//home directory of shell
void printCwd(){/*{{{*/
long size;
char *buf;
char *cwd;
size=pathconf(“.“_PC_PATH_MAX);
if((buf=(char *)malloc((size_t)size))!=NULL)
cwd=getcwd(buf(size_t)size);
printf(“%s$“cwd);
}/*}}}*/
void myshell(){/*{{{*/
printCwd();
char cmd[MAX_CMD_LEN+1];//store a command line
char *token[MAX_TOKEN_NUM+1];//store tokens from command
int token_num;//number of tokens
int DaemonToggle=0;//daemon toggle
int i=-1;
do{
i++;
cmd[i]=getchar();
}while(cmd[i]!=‘\n‘&&i<=MAX_CMD_LEN);
cmd[i]=‘\0‘;
if(i==0){//no input
return;
}
#ifndef NDEBUG
printf(“DEBUG--%d\t\tcommand:%s\n“__LINE__cmd);
#endif
token[0]=strtok(cmd“ “);
for(i=1;token[i-1]!=NULL&&i token[i]=strtok(NULL“ “);
#ifndef NDEBUG
printf(“DEBUG--%d\t\ttoken[%d]:%s\n“__LINE__itoken[i]);
#endif
}
if(token[i-1]==NULL){
token_num=i-1;
}
else{
token[i]=NULL;
token_num=i;
}
if(strcmp(token[token_num-1]“&“)==0)
DaemonToggle=1;
else
DaemonToggle=0;
#ifndef NDEBUG
printf(“DEBUG--%d\t\ttokens:“__LINE__);
for(i=0;token[i]!=NULL;i++)
printf(“%s “token[i]);
printf
- 上一篇:32位Visio一键到底式安装包
- 下一篇:智能手环硬件原理图
相关资源
- 升腾Win终端系统升级方法新版.doc
- Uninstall_Cortana_WINCLIENT.CN.rar
- STM32基于rt_thread操作系统的SDHC卡文件
- 操作系统 LRU算法 实验报告 及 程序代
- [免费]车载CE6.0操作系统
- 分页系统模拟实验 操作系统 课程设
- 模拟段页式虚拟存储管理中地址转换
- 操作系统实验——虚存管理实验
- 广工操作系统实验
- 广东工业大学操作系统实验四文件系
- 华南理工大学数据结构复习提纲二
- 华南理工大学数据结构复习提纲一
- Bochs入门教程[操作系统第一步]
- 操作系统课程设计完整版
- 磁盘调度算法的模拟实现及对比
- 模拟一个文件管理系统
- 二级文件系统(操作系统)
- uCOS编译环境建立 BC45 TASM
- Linux 操作系统实验(全)
- 操作系统实验综合设计【附代码】
- 操作系统共享内存实验
- 操作系统循环首次适应算法
- 操作系统课程设计实现可变分区存储
- 基于GTK的Linux环境下的简易任务管理器
- 操作系统课程设计 二级文件管理系统
- 加快Windows XP操作系统开机速度
- 操作系统教程课后答案华中科技大学
- 51单片机中使用ucos ii的优缺点转
- 51单片机中使用ucos ii的优缺点
- 嵌入式实时操作系统ucos-II 第二版 源
评论
共有 条评论