Mybash的实现
Mybash的实现
要求:
- 使用fork,exec,wait实现mybash
- 写出伪代码,产品代码和测试代码
- 发表知识理解,实现过程和问题解决的博客(包含代码托管链接)
背景知识
1. fork
- 使用
man 2 fork
查看fork文档
计算机程序设计中的分叉函数。 若成功调用一次则返回两个值,子进程返回0,父进程返回子进程标记;否则,出错返回-1。
调用n次fork,会产生2^n个进程。
验证结果
2.exec
3.wait
- 使用
man 2 wait
查看wait文档
wait()会暂时停止目前进程的执行,直到有信号来到或子进程结
束。如果在调用wait()时子进程已经结束,则wait()会立即返
回子进程结束状态值。子进程的结束状态值会由参数status 返回,
而子进程的进程识别码也会一快返回。如果不在意结束状态值,则
参数status 可以设成NULL。验证结果
mybash
思路:1.根据上课老师讲的内容,在已实现调用程序的基础上加一个while循环,来保证不断执行程序。2.利用pid的返回值来识别一个子程序并执行。3.类似老师exec1.c,输入命令后进行分割。
结果
Mybash的实现的更多相关文章
- 2017-2018-1 20155215 第五周 mybash的实现
题目要求 使用fork,exec,wait实现mybash 写出伪代码,产品代码和测试代码 发表知识理解,实现过程和问题解决的博客(包含代码托管链接) 学习fork,exec,wait fork ma ...
- 2017-2018-1 20155306 《信息安全系统设计基础》Mybash的实现
2017-2018-1 20155306 <信息安全系统设计基础>Mybash的实现 要求: 使用fork,exec,wait实现mybash 写出伪代码,产品代码和测试代码 发表知识理解 ...
- 20165223 《信息安全系统设计基础》 实现mybash
一.了解 mybash 1. 简介 bash 是 Bourne Again Shell 的缩写,是linux默认的标准shell(也是大家常说的系统内核),bash也是Unix/Linux上常见的 ...
- 20165220 mybash
使用fork,exec,wait实现mybash - 写出伪代码,产品代码和测试代码 - 发表知识理解,实现过程和问题解决的博客(包含代码托管链接) 1.fork 功能:创建一个新的进程 一个现存进程 ...
- 实现mypwd和mybash
一.pwd 1.学习pwd命令 man pwd查看pwd功能 可以得知pwd功能是打印当前目录 2.研究pwd实现需要的系统调用(man -k; grep),写出伪代码 (1)man -k direc ...
- 实现mybash
任务内容 1.使用fork,exec,wait实现mybash 查找资料: fork函数 通过fork()系统调用我们可以创建一个和当前进程印象一样的新进程.我们通常将新进程称为子进程,而当前进程称为 ...
- 实现mypwd&mybash&myod&读者写者
目录: 一.mypwd 二.mybash 三.myod 四.读者.写者 一.实现mypwd 学习pwd命令 研究pwd实现需要的系统调用(man -k; grep),写出伪代码 实现mypwd 测试m ...
- 20155219 mybash的实现
第五周加分题--mybash的实现 题目要求 1.使用fork,exec,wait实现mybash 2.写出伪代码,产品代码和测试代码 3.发表知识理解,实现过程和问题解决的博客(包含代码托管链接) ...
- 20155326 第五周加分题--mybash的实现
第五周加分题--mybash的实现 题目要求 1.使用fork,exec,wait实现mybash 2.写出伪代码,产品代码和测试代码 3.发表知识理解,实现过程和问题解决的博客(包含代码托管链接) ...
随机推荐
- STM32f4 ARM Bootloader
参考资料: 基于ARM 的嵌入式系统Bootloader 启动流程分析 Bootloader 详解 ( 代码环境 | ARM 启动流程 | uboot 工作流程 | 架构设计) Android系统启动 ...
- 动态链接库(DLL)
DLL 的类型 当您在应用程序中加载 DLL 时,可以使用两种链接方法来调用导出的 DLL 函数.这两种链接方法是加载时动态链接和运行时动态链接. 加载时动态链接 在加载时动态链接中,应用程序像调用本 ...
- 三:Linux 的基本命令、
Ubuntu切换用户 su root sudo passwd root 使用管理员提权修改root 登录密码 连续输入两次即可..... 重置root 用户密码 例:当前登录用户为:ubuntu,但是 ...
- springboot如何测试打包部署
有很多网友会时不时的问我,spring boot项目如何测试,如何部署,在生产中有什么好的部署方案吗?这篇文章就来介绍一下spring boot 如何开发.调试.打包到最后的投产上线. 开发阶段 单元 ...
- Tencent研发工程师笔试知识点
一: 32位编译器:32位系统下指针占用4字节 char :1个字节 char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节.同 ...
- char码值对应列表大全
Char("0") 为0的字符Char("1") Char("2") Char("3") Char("4&qu ...
- vue项目架构
一.工程说明: 1.代码git仓库地址:git@gitlab.*****.git. 2.目录结构: 1>.index.html 为build打包发布网页入口: 2>.lieda文件夹代码项 ...
- Windows下安装TensorFlow
最近学习TensorFlow,当然前提是装好框架,网上教程很多都是虚拟搭建或者是conda,从我的经验来讲,Windows目前只支持Python3.5版本安装,Python官网上有说明: 本人由于常用 ...
- canvas描绘渐变的矩形
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- python笔记之序列
str字符串 表达:单引号,双引号,反斜杠 'let\'s go.' #只使用单引号,外部使用单引号,内部单引号用反斜杠 "let's go. " #单双引号混合使用 长字符串 使 ...