[操作系统实验] Todolist
来源:互联网 发布:数据有效性校验身份证 编辑:程序博客网 时间:2024/06/01 09:09
typedef struct SimpleCmd{int isBack;char **args;char *input;char *output}
以上是原来的
改为
typedef struct Cmd{int isBack;//时候为后台任务int cmdCount;//单个命令的数目,就是以管道分隔符‘|’分割开来的命令的数目char *cmd;//用户输入的原始命令,用于显示(如jobs命令显示的用户执行的后台任务)SingleCmd **cmds;//SingleCmd(单个命令)的数组char *input;//输入重定向char *output;//输出重定向}
SingleCmd{char *program; //execv的第一个参数,命令路径,如/bin/echochar **args //命令的参数列表int pid//命令的pid}
例子:echo aaa | cat | cat
Cmd{isBack:0;cmdCount:3;cmd:"echo aaa | cat | cat";SingleCmd = {echo aaa,cat,cat}input:null;output:null}
Job结构改为(至少有这几项),书上是用链表实现的
typedef struct Job{int pgid;//进程组编号(jobid)char cmd[100]//命令名char state[100]//作业状态Cmd* cmd;}
要实现的函数
addJob(Cmd* cmd)//把一个cmd加入后台Job工作队列removeJob(pgid)//根据job的pgid删除jobgetJob(pgid)//返回指定pgid的jobsetSingleCmdState(pgid,pid)//将pgid的job中,singleCmd.pid==pid的singleCmd.pid置为-1(表示他运行完了)checkSingleCmdState(pgid)//检查pgid的job是否执行完(所有singleCmd.pid都为-1)copyCmd(Cmd *cmd)//从job中复制cmd(拷贝一份),返回新的拷贝重写execSimpleCmd下的 jobs 子命令
- [操作系统实验] Todolist
- todolist
- 【ToDoList】
- TODOList
- ToDoList
- TODOList
- ToDoList
- todolist
- TODOList
- ToDoList
- todolist
- ToDoList
- TODOlist
- 操作系统实验
- 华师 操作系统实验 实验一
- 华师 操作系统实验 实验二
- 华师 操作系统实验 实验三
- 操作系统实验一实验报告
- [操作系统实验] Todo - list
- linux vsftpd 550 create directory operation failed解决方法
- 【转】RoBa's blogProgramming, algorithm, and daily lifeRe: 真的ACM很有用么?
- 返回引用【3】
- [RTT例程练习] 4.1 定时器基本使用
- [操作系统实验] Todolist
- Android源码编译整理总结
- WTL入门(2)-- WTL基础 (转)
- 范型编程与STL 第二章 算法与区间
- Linux系统中添加硬盘,分区与格式化
- 程序员技术练级攻略
- 寻找更新过的数据
- Starling实录-2理解它
- 邮件发送的js和参数的传送