没有合适的资源?快使用搜索试试~ 我知道了~
1操作系统实践报告.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 112 浏览量
2022-06-22
08:38:18
上传
评论 1
收藏 96KB DOC 举报
温馨提示
试读
36页
操作系统实践报告 多进程题目 sh1.c: 实现shell程序,要求具备如下功能 支持命令参数 $ echo arg1 arg2 arg3 $ ls /bin /usr/bin /home 实现内置命令cd、pwd、exit $ cd /bin $ pwd /bin 思路: 说明:首先设置一个死循环模仿shell终端,读取用户的输入,并且根据空格将输入拆 分成字符串数组,然后调用excute这个子函数进行处理。 1. echo 根据数组第一个元素来判断命令是什么,判断出是ehco后,fork一个新的进程,将 其后的内容一个个输出出来,并且父进程等待子进程退出后再执行,确保输出在屏 幕上时不被打断。 2. ls 读取用户输入并且根据拆分的数组判断出是ls命令后,fork一个新的进程,调用e xeclp函数将/bin/ls下的ls程序装入子进程并将拆分的数组参数部分传递给ls即可 ,同样的,父进程等待子进程退出,确保输出在屏幕上不被打断。 3. cd 同样是根据输入并拆分成数组后判断出是cd命令后,fork一个新的进程,然后调用 chdir并将拆分数组的参数部分传递给chdir作为实参即可
资源推荐
资源详情
资源评论
1 操作系统实践报告
操作系统实践报告
.
1 操作系统实践报告
多进程题目
sh1.c: 实现 shell 程序,要求具备如下功能
支持命令参数
实现内置命令 、、
思路:
说明:首先设置一个死循环模仿 终端,读取用户的输入,并且根据空格将输入拆分成字符串数
组,然后调用 这个子函数进行处理。
根据数组第一个元素来判断命令是什么,判断出是 后, 一个新的进程,将其后的内容
一个个输出出来,并且父进程等待子进程退出后再执行,确保输出在屏幕上时不被打断。
读取用户输入并且根据拆分的数组判断出是 命令后, 一个新的进程,调用 函数将
下的 程序装入子进程并将拆分的数组参数部分传递给 即可,同样的,父进程等待子
进程退出,确保输出在屏幕上不被打断。
同样是根据输入并拆分成数组后判断出是 命令后, 一个新的进程,然后调用 并将
拆分数组的参数部分传递给 作为实参即可。
同样是根据输入并拆分成数组后判断出是 命令后, 一个新的进程,然后调用
!即可,此命令也可以用来验证上面的 命令是否正确执行。
"
根据用户输入逼格拆分的数组判断出是 命令后, 子函数返回#,在循环中检测
的返回值,如果是# 则直接 ,退出模仿的 终端。
sh2.c: 实现 shell 程序,要求在第 1 版的基础上,添加如下功能
实现文件重定向
$
%
思路:
.
1 操作系统实践报告
接 的描述,若判断出是 命令后,要再次判断拆分的字符串数组中有无“$&出现,如果
有,则把“$&之前、 之后的内容作为输出,把“$&之后到“$&之后的第一个空白字符作为文件名,
创建文件并 将输出内容输出到该文件中,并关闭文件。
sh1.c 和 sh2.c 的源代码:
'($
'($
'($
'($
'($
'($
'($
')*+,"-
')./01%"-
')%+/2%13
45675%+/2%165./01%6!
8
9:
;<7 !:
;3:
;3:56=;>?3>:@@!8
53656;56:
A
53656;>?3>:
B;:
!8
;<7 !:
!8
;3:56=;>?3>:@@!8
5B656;56:
A
5B656;>?3>:
B@@:
A
A
A
5%+/2%165./01%6!
8
5367 !;;3!8
;!:
.
1 操作系统实践报告
;;3!8
;3:
;3:
;:56536=;>?3>:@@!8
56536;;>$>!8
;:
:
A
A
;;!8
5@6!:
C/*+9;5@67 @ !:
B;3:
B;:B(:B@@!8
737D++EF+,0!:
5B675B6!77!:
A
!:
A8
B;3:
B;:5B6536=;>?3>:B@@!8
G 75B6!:
!:
A
? !:
A
A8
:
<!:
A
A5367 !;;3!8
;!:
;;3!8
56536;;>?3>!8
7 7 7,H**7,H**7,H**!:
A8
7 7567,H**7,H**7,H**!:
A
A8
:
<!:
A
A5367 !;;3!8
.
1 操作系统实践报告
;!:
;;3!8
56!:
A8
:
<!:
A
A5367 !;;3!8
;!:
;;3!8
!:
A8
:
<!:
A
A5367 !;;3!8
#:
A
:
A
!
8
!8
5*+,6:
I5%+/2%165./01%6;88>?3>AA:
G 7 $$ !:
!:
7I!:
;3:
#;;I!!8
3:
A
A
A
sh3.c: 实现 shell 程序,要求在第 2 版的基础上,添加如下功能
实现管道
J#
实现管道和文件重定向
.
剩余35页未读,继续阅读
资源评论
是空空呀
- 粉丝: 167
- 资源: 3万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- python五一数学建模 (2).zip
- 利用python实现随机森林类代码
- 蚁群算法路径规划matlab
- 2024五一数学建模(利用python进行数学建模).zip
- 计算机毕业设计-JAVA+SQL离散数学题库管理系统(源代码+论文+外文翻译)
- 计算机毕业设计-Java+access综合测评系统毕业设计(源代码+论文+开题报告+任务书)
- 计算机毕业设计-JavaSmart系统-系统框架设计与开发(源代码+论文)
- 297418564246850加工中心宏计算.apk
- 基于Python实现对书旗小说网进行逆向,实现整本书的采集源代码 并使用tkinter做了GUI界面
- 基于Python实现对塔读小说的免费内容进行整本书的采集源代码,利用JS逆向对每章节中的文字广告进行去除
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功