实现mybash】的更多相关文章

Mybash的实现 要求: 使用fork,exec,wait实现mybash 写出伪代码,产品代码和测试代码 发表知识理解,实现过程和问题解决的博客(包含代码托管链接) 背景知识 1. fork 使用man 2 fork查看fork文档 计算机程序设计中的分叉函数. 若成功调用一次则返回两个值,子进程返回0,父进程返回子进程标记:否则,出错返回-1. 调用n次fork,会产生2^n个进程. 验证结果 2.exec 此处参考exec系列函数(execl,execlp,execle,execv,ex…
题目要求 使用fork,exec,wait实现mybash 写出伪代码,产品代码和测试代码 发表知识理解,实现过程和问题解决的博客(包含代码托管链接) 学习fork,exec,wait fork man fork fork 这个英文单词在英文里是"分叉"意思, fork() 这个函数作用也很符合这个意思. 它的作用是复制当前进程(包括进程在内存里的堆栈数据)为1个新的镜像. 然后这个新的镜像和旧的进程同时执行下去. 相当于本来1个进程, 遇到fork() 函数后就分叉成两个进程同时执行…
2017-2018-1 20155306 <信息安全系统设计基础>Mybash的实现 要求: 使用fork,exec,wait实现mybash 写出伪代码,产品代码和测试代码 发表知识理解,实现过程和问题解决的博客(包含代码托管链接) 知识基础: 1.shell shell命令分为 内建命令 & 外部命令 内建命令(builtin command) 是shell解释程序内建的,由shell直接执行,不需要派生新的进程. 外部命令分为两种: 二进制代码 或 shell脚本.shell执行…
一.了解 mybash 1. 简介   bash 是 Bourne Again Shell 的缩写,是linux默认的标准shell(也是大家常说的系统内核),bash也是Unix/Linux上常见的Shell脚本解释器,既然bash是标准的shell,那么就有非标准的sh,csh,ksh等等,我们常说有多少种Shell,其实说的是Shell脚本解释器,Shell是一种脚本语言,那么,就必须有解释器来执行这些脚本,bash是基于Bourne shell创建的,并且吸收了C shell和Korn…
使用fork,exec,wait实现mybash - 写出伪代码,产品代码和测试代码 - 发表知识理解,实现过程和问题解决的博客(包含代码托管链接) 1.fork 功能:创建一个新的进程 一个现存进程调用fork函数是linux内核创建一个新进程的唯一方法(交换进程.init进程和页精灵进程并不是这样,这些进程是由内核作为自举过程的一部分以特殊方式创建的). 参数:pid_t fork(void);返回值:一个是子进程返回0,第二个是父进程的返回值大于0.错误返回-1.头文件:include<u…
一.pwd 1.学习pwd命令 man pwd查看pwd功能 可以得知pwd功能是打印当前目录 2.研究pwd实现需要的系统调用(man -k; grep),写出伪代码 (1)man -k directory | grep 2查看是否有可用命令 (2) 可以得知getcwd命令可以获得当前目录路径 man getcwd查看getcwd命令功能 找到所需要的头文件以及函数 #include <unistd.h> char *getcwd(char *buf, size_t size); (3)由…
任务内容 1.使用fork,exec,wait实现mybash 查找资料: fork函数 通过fork()系统调用我们可以创建一个和当前进程印象一样的新进程.我们通常将新进程称为子进程,而当前进程称为父进程.而子进程继承了父进程的整个地址空间,其中包括了进程上下文,堆栈地址,内存信息进程控制块(PCB)等.通过man手册我们可以轻松知道fork()包含的头文件<sys/types.h>和<unistd.h>,功能就是创建一个子进程.函数原型:pid_t fork(void),pid…
目录: 一.mypwd 二.mybash 三.myod 四.读者.写者 一.实现mypwd 学习pwd命令 研究pwd实现需要的系统调用(man -k; grep),写出伪代码 实现mypwd 测试mypwd 1.pwd命令学习 pwd(print working directory) 作用:打印出当前路径全名 symlink :符号链接 2.研究pwd实现需要的系统调用(man -k; grep),写出伪代码 由上可以看出: 系统调用命令:Getcwd 头文件和参数 #include <uni…
第五周加分题--mybash的实现 题目要求 1.使用fork,exec,wait实现mybash 2.写出伪代码,产品代码和测试代码 3.发表知识理解,实现过程和问题解决的博客(包含代码托管链接) exec函数组 一个程序如何运行另一个程序呢? 我们得搞清楚需要调用什么函数来完成这个过程.如果想使用man -k xxx这个命令进行搜索. 试试man -k program | grep execute 如下图: 再进一步使用man -k execute搜索,通过观察说明,我们找到了一系列相关的函…
第五周加分题--mybash的实现 题目要求 1.使用fork,exec,wait实现mybash 2.写出伪代码,产品代码和测试代码 3.发表知识理解,实现过程和问题解决的博客(包含代码托管链接) bash是什么 在百度中搜索bash查看它是什么,得知bash 是一个为GNU计划编写的Unix shell.bash 指的就linux常用的shell脚本语言,这个常见于脚本第一行 : #!/bin/bash或者 #!/bin/sh 这种shell脚本很简单,就和你在终端输入命令一样,一行一行执行…