20155212 mybash的实现】的更多相关文章

mybash的实现 题目 使用fork,exec,wait实现mybash 写出伪代码,产品代码和测试代码 发表知识理解,实现过程和问题解决的博客(包含代码托管链接) 准备 通过man命令了解fork.exec和wait fork exec wait 编程实现 伪代码 while(1) { fgets(命令行输入): if(内置的shell命令) { 解释命令: } else if(可执行文件) { 新的子进程加载并运行文件: } } 产品代码 #include <stdio.h> #incl…
2017-2018-1 20155239 <信息安全系统设计基础>第五周学习总结+mybash的实现 mybash的实现 使用fork,exec,wait实现mybash 写出伪代码,产品代码和测试代码 发表知识理解,实现过程和问题解决的博客(包含代码托管链接) 首先通过man命令了解fork.exec和wait 命令行输入:man fork 命令行输入:man exec 命令行输入:man wait 伪代码 while(1) { fgets(命令行输入): if(内置的shell命令) {…
20155212 实验四 <Android程序设计> 实验报告 (一)Android Stuidio的安装测试 参考<Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)>第二十四章: 安装 Android Stuidio 完成Hello World, 要求修改res目录中的内容,Hello World后要显示自己的学号,提交代码运行截图和码云Git链接,截图没有学号要扣分 学习Android Stuidio调试应用程序 实验(虚…
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脚本很简单,就和你在终端输入命令一样,一行一行执行…
20155212 2016-2017-2 <Java程序设计>第8周学习总结 教材学习内容总结 Chapter14 1. Channel架构与操作 想要取得Channel的实作对象,可以使用Channels类别. 静态方法newChannel(),可以让你从InputStream.OutputStream分别建立ReadableByteChannel.WritableByteChannel. 有些InputStream.OutputStream实例本身也有方法可以取得Channel实例:Fil…
20155212 2016-2017-2 <Java程序设计>第6周学习总结 教材学习内容总结 Chapter10 输入串流为java.io.InputStream,输出串流为java.io.OutputStream,无须理会来源或目的真正形式. 在不使用InputStream和OutputStream时,必须使用close()关闭串流,但是JDK7会尝试自动关闭资源语法. System.in与System.out分别是InputStream与OutputStream的实例,分别代表标准是输入…
20155212 2016-2017-2 <Java程序设计>第7周学习总结 教材学习内容总结 Chapter13 取得系统时间的方法之一是System.currentTimeMillis()方法,返回的是long类型整数,代表1970年1月1日0时0分0秒0毫秒至今经过的毫秒数. Date也是偏向机器的时间观点. Date有两个构造函数可以使用,一个可使用epoch毫秒数构建,另一个为无自变量构造函数,内部亦是使用System.currentTimeMillis取得epoch毫秒数,调用ge…
20155212 C语言实现linux下pwd命令的两种方法 学习pwd命令 通过man pwd命令查看 pwd [OPTION],一般不加参数 -P显示当前目录的物理路径 -L显示当前目录的连接路径 该命令用来显示目前所在的工作目录.指令英文原义:print work directory 系统调用 使用man -k dir | grep 2命令查看有哪些跟pwd相关的系统调用 这里有两个系统调用可能用到pwd中 getcwd() 功能:获取当前目录 参数 char *buf:存储当前路径的字符…
第五周加分题--mybash的实现 题目要求 1.使用fork,exec,wait实现mybash 2.写出伪代码,产品代码和测试代码 3.发表知识理解,实现过程和问题解决的博客(包含代码托管链接) 通过man命令了解fork.exec和wait fork 返回值: 若成功调用一次则返回两个值,子进程返回0,父进程返回子进程标记:否则,出错返回-1. exec 系统调用execve()对当前进程进行替换,替换者为一个指定的程序,其参数包括文件名(filename).参数列表(argv)以及环境变…
20155212 2016-2017-2 <Java程序设计>第9周学习总结 教材学习内容总结 Chapter16 数据库本身是个独立运行的应用程序. 应用程序如何呼叫这组链接库? 不同的数据库通常会有不同的通讯协议. 用以联机不同数据库的链接库在API上也会有所不同. 驱动程序分为四种类型 Type 1:JDBC-ODBC Bridge Driver Type 2:Native API Dirver Type 3:JDBC-Net Driver Type 4:Native Protocol…
第五周 加分题-mybash的实现 使用fork,exec,wait实现mybash 产品代码 #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/wait.h> #include <unistd.h> #include <string.h> #define DELAY 2 void child_code(int delay,char…
20155308 加分题-mybash的实现(第五周) 实验要求 使用fork,exec,wait实现mybash 写出伪代码,产品代码和测试代码 发表知识理解,实现过程和问题解决的博客(包含代码托管链接) 使用fork,exec,wait实现mybash(代码) fork 首先用man命令查看fork的使用方法 其功能 通过复制调用fork的进程创建一个新进程. 返回值 创建子进程成功时,fork在父进程中返回子进程的pid,在子进程中返回0.失败时,在父进程中返回-1,无子进程被创建,相应的…
2017-2018-1 20155320 第五周 加分题-mybash的实现 使用fork,exec,wait实现mybash 写出伪代码,产品代码和测试代码 发表知识理解,实现过程和问题解决的博客(包含代码托管链接) 学习函数的使用 使用man命令来查找函数的使用 fork函数 fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事.一个进程调用fork()函数后,系统先给新的进程分配资源.…
mybash的实现 要求 使用fork,exec,wait实现mybash 写出伪代码,产品代码和测试代码 发表知识理解,实现过程和问题解决的博客(包含代码托管链接) 学习相关知识 fork函数 查看帮助文档可以知道fork函数的头文件,函数原型,以及函数的功能等,如下图 fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事. 一个进程调用fork()函数后,系统先给新的进程分配资源. fo…
Mybash实现 知识储备: feof是C语言标准库函数,其原型在stdio.h中,其功能是检测流上的文件结束符,如果文件结束,则返回非0值,否则返回0,文件结束符只能被clearerr()清除. 创建进程时经常会用到进程号的类型定义:pid_t.我们都知道这个类型定义实际上就是int型. pid 是控制系统中的重要参数,指控制方式, 我们编写1个普通的c程序, 运行这个程序直到程序结束, 系统只会分配1个pid给这个程序, 也就就说, 系统里只会有一条关于这个程序的进程. 但是执行了fork(…
fork() 计算机程序设计中的分叉函数.返回值: 若成功调用一次则返回两个值,子进程返回0,父进程返回子进程标记:否则,出错返回-1. fork函数将运行着的程序分成2个(几乎)完全一样的进程,每个进程都启动一个从代码的同一位置开始执行的线程.这两个进程中的线程继续执行,就像是两个用户同时启动了该应用程序的两个副本. mybash 版本一 #include <errno.h> #include <stdio.h> #include <stdlib.h> char co…
20155212 ch02 课下作业 T1 题目 参考附图代码,编写一个程序 "week0601学号.c",判断一下你的电脑是大端还是小端 相关知识 小端法:最低有效字节在最前面 大端法:最高字节在最前面 思路 将参数的指针强制类型转换为unsigned char *代码利用强制转换类型告诉机器,程序应该把这个指针看成指向一个字节序列,而不是指向一个原始数据类型的对象.然后这个指针会被看成是对象使用的最低字节地址. 代码 #include <stdio.h> typedef…
20155212 实验三 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程. 完成实验.撰写实验报告,实验报告以博客方式发表在博客园. 严禁抄袭,有该行为者实验成绩归零,并附加其他惩罚措施. 实验步骤 (一)敏捷开发与XP 敏捷开发(Agile Development)是一种以人为核心.迭代.循序渐进的开发方法. 极限编程(eXtreme Programming,XP)是…
20155212 2016-2017-2 <Java程序设计>第10周学习总结 教材学习内容总结 密码学基础 ava API支持多种加密算法.如MessageDigest类,可以构建MD5.SHA等摘要算法:Mac类可以构建HMAC算法:Cipher类可以构建多种加密算法,如DES.AES.Blowfish对称加密算法,以及RSA.DSA.DH等多种非对称加密算法:Signature类可以用于数字签名和签名验证:Certificate类可用于操作证书. 安全的三个属性: 机密性 完整性 可用性…
20155212 实验二 Java面向对象程序设计 单元测试 三种代码 用编程去解决问题,必须学会写三种码: 伪代码 产品代码 测试代码 例: MyUtil 类解决一个百分制成绩转成"优.良.中.及格.不及格"五级制成绩的功能. 伪代码: 百分制转五分制: 如果成绩小于60,转成"不及格" 如果成绩在60与70之间,转成"及格" 如果成绩在70与80之间,转成"中等" 如果成绩在80与90之间,转成"良好"…
20155212 实验一<Java开发环境的熟悉>实验报告 命令行下Java程序开发 命令创建实验目录 输入mkdir 2051212创建以自己学号命名的文件夹,通过cd 20155212命令进入到指定文件夹,输入mkdir exp1创建实验文件夹. 输入gedit Hello.java(注意把代码保存到exp1目录中)或vim Hello.java,编辑Hello.java,并输入以下代码: 1 package jzs; 2 import java.util.Scanner; 3 publi…