第五周加分题--mybash的实现
第五周加分题--mybash的实现
题目要求
1.使用fork,exec,wait实现mybash
2.写出伪代码,产品代码和测试代码
3.发表知识理解,实现过程和问题解决的博客(包含代码托管链接)
通过man命令了解fork、exec和wait
- fork
返回值: 若成功调用一次则返回两个值,子进程返回0,父进程返回子进程标记;否则,出错返回-1。

- exec
系统调用execve()对当前进程进行替换,替换者为一个指定的程序,其参数包括文件名(filename)、参数列表(argv)以及环境变量(envp)。

- wait
等待子进程中断或结束

编程
- 伪代码
int main(){
从终端读取要执行的命令
fork()产生子进程执行此命令
如果exec函数返回,表明没有正常执行命令,打印错误信息perro()
父进程, 等待子进程结束,并打印子进程的返回值wait(&rtn)
}
- 产品代码
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <limits.h>
void main()
{
char *command[3];
command[0] = "ls";
command[1] = "-l";
command[2] = 0;
int s,i=0;
int rtn;
printf( ">" );
//printf("%s %s %s",command[1],command[2],command[3]);
printf("%s",command[0]);
i=0;
s=fork();
if ( s== 0 ) {
//printf("%d\n",s);
execvp( command[0], command );
//perror( command );
exit( errno );
}
else {
//printf("%d\n",s);
wait ( &rtn );
printf( " child process return %d\n", rtn );
}
}
测试并运行

第五周加分题--mybash的实现的更多相关文章
- 20155326 第五周加分题--mybash的实现
第五周加分题--mybash的实现 题目要求 1.使用fork,exec,wait实现mybash 2.写出伪代码,产品代码和测试代码 3.发表知识理解,实现过程和问题解决的博客(包含代码托管链接) ...
- 第五周 加分题-mybash的实现
第五周 加分题-mybash的实现 使用fork,exec,wait实现mybash 产品代码 #include <stdio.h> #include <stdlib.h> # ...
- 2017-2018-1 20155320 第五周 加分题-mybash的实现
2017-2018-1 20155320 第五周 加分题-mybash的实现 使用fork,exec,wait实现mybash 写出伪代码,产品代码和测试代码 发表知识理解,实现过程和问题解决的博客( ...
- 20155308 加分题-mybash的实现(第五周)
20155308 加分题-mybash的实现(第五周) 实验要求 使用fork,exec,wait实现mybash 写出伪代码,产品代码和测试代码 发表知识理解,实现过程和问题解决的博客(包含代码托管 ...
- 2017-2018-1 20155239 《信息安全系统设计基础》第五周学习总结+mybash的实现
2017-2018-1 20155239 <信息安全系统设计基础>第五周学习总结+mybash的实现 mybash的实现 使用fork,exec,wait实现mybash 写出伪代码,产品 ...
- 20155339 第七周加分项目 mybash的实现
mybash的实现 要求 使用fork,exec,wait实现mybash 写出伪代码,产品代码和测试代码 发表知识理解,实现过程和问题解决的博客(包含代码托管链接) 学习相关知识 fork函数 查看 ...
- 程序设计入门—Java语言 第五周编程题 2井字棋(5分)
2 井字棋(5分) 题目内容: 嗯,就是视频里说的那个井字棋.视频里说了它的基本思路,现在,需要你把它全部实现出来啦. 你的程序先要读入一个整数n,范围是[3,100],这表示井字棋棋盘的边长.比如n ...
- 20155322 2017-2018-1 《信息安全系统设计》第五周 MyBash实现
#20155322 2017-2018-1<信息安全系统设计>第五周 MyBash实现 [博客目录] 实现要求 相关知识 bash fork exec wait 相关问题 fork返回两次 ...
- 第五周 mybash的实现
第五周 mybash的实现 1. 使用fork,exec,wait实现mybash 2. 写出伪代码,产品代码和测试代码 3. 发表知识理解,实现过程和问题解决的博客(包含代码托管链接) 1. for ...
随机推荐
- 微信网页IOS上传图片旋转解决方案
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- (转)光照模型及cg实现
经典光照模型(illumination model) 物体表面光照颜色由入射光.物体材质,以及材质和光的交互规律共同决定. 由于环境光给予物体各个点的光照强度相同,且没有方向之分,所以在只有环境光的情 ...
- 用windows自带的fsutil修改稀疏文件大小成功,但文件内容似乎丢失
fsutil sparse setflag. fsutil sparse setrange 10M对应字节,1G对应字节.. 看文件属性,实际尺寸是小了,但内容似乎也丢了..因为自己把该文件做成虚拟盘 ...
- IntelliJ 禁用 Search Everywhere
发现自: https://youtrack.jetbrains.com/issue/IDEA-114933#comment=27-603899 Open lib/resources.jar/idea/ ...
- 10条Linux 命令了解服务器当前性能
参考:http://www.infoq.com/cn/news/2015/12/linux-performance 1. uptime 如果电脑运行缓慢,执行 uptime 可以大致查看Linux服务 ...
- Matlab面向对象编程基础
DeepLab是一款基于Matlab面向对象编程的深度学习工具箱,所以了解Matlab面向对象编程的特点是必要的.笔者在做Matlab面向对象编程的时候发现无论是互联网上还是书店里卖的各式Matlab ...
- 1.5 Community and Conferences(社区和讨论组)+ 私货
1.5 Community and Conferences(社区和讨论组)+ 私货 下面是一些和科学计算,数据处理相关的Python社群和讨论组,如果有什么问题可以进行提问: pydata: A Go ...
- 3、JVM--垃圾回收期和内存分配策略(1)
前言: Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外面的人想进去,墙里面的人却想出来. 3.1.概述 垃圾收集(Garbage Collection,GC),大部分人都 ...
- snip
首先明确物体太小太大都不好检测(都从roi的角度来分析): 1.小物体: a.本身像素点少,如果从anchor的点在gt像素内来说,能提取出来的正样本少 b.小物体会出现iou过低.具体来说 ...
- AdminLTE前端模板
AdminLTE是一个Bootstrap框架模板,其功能组件并不比我直接提到的Metronic差. 第一次接触过AdminLTE是在学习Jeesite这个开源项目的时候.离现在已经有半年了. Admi ...