免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 5491 | 回复: 21

老师给了个课题 小弟不会 希望大家都帮帮忙 谢谢了 [复制链接]

论坛徽章:
0
发表于 2010-06-22 15:35 |显示全部楼层
本帖最后由 suseuniversity 于 2012-05-23 11:48 编辑

老师布置了操作系统课程设计。编写一个shell 。小弟不懂怎么下手。哪位老大能否指教指教小弟?万分感谢。以前一直没学过这个。都是抄同学的。现在要自己做了,有做不出来。就上来这里向各位请教了
具体要求如下
操作系统课程设计:UNIX SHELL的设计
Unix shell是unix的命令解释程序,用于让用户以一种友好的方式运行程序和执行命令。本课程设计要求学生在linux下写一个命令解释程序,实现Ksh最基本的功能。即:允许用户打入一个可执行的程序的名字以及其命令行参数,执行这个程序。同时实现一部分内部命令(比如cd,详见要实现的命令),以及输入输出重定向等功能。具体功能要求如下:
基本功能要求
1)利用C语言在Linux上设计一个简单的命令解释程序,完成如下功能:
dir <directory> 列目录
cd <>改变当前目录
pwd 显示当前目录名
md <directory> 创建一个目录
copy <source> <target>复制文件和目录
find 在指定的目录及其子目录中查找特定的文件
more <file>一页一页地显示文件
date 显示当前日期
time显示当前时间
ren <old name> <new name>重命名一个文件或目录
del <file or directory>删除一个文件和目录
exit 退出命令解释程序。
执行一个程序
2)命令解释程序的提示符为:@
3)命令解释程序把命令行解释为内部命令或外部命令(要执行的程序)。内部命令直接在命令解释程序中处理,外部命令的执行则由命令解释程序通过fork()创建一个子进程,然后在子进程中调用exec执行一个程序。
4)命令解释程序应能够支持输入输出重定向。
选作内容:
1) 命令解释程序支持后台运行程序。
2) 命令解释程序支持管道。
3) 命令解释程序不能被ctrl+c打断。
课程设计要求:
1) 命令解释程序的实现环境是linux,编程语言使用C语言。
2) 整个程序必须严格经过测试,完整所有基本功能。源程序应有较详尽的注释。
3) 程序编写应有良好的风格。
4) 程序编制中不得使用system()系统调用。
5) 整个系统的源代码应由多个文件组成,所有源程序文件及其makefile用tar命令打成一个包,放在指定的目录下。
6) 设计报告应包含如下内容:a)系统的总体设计和详细设计 b) 你的命令解释程序详细使用手册 c) 所有源程序清单 d) makefile
7) 设计提交的内容应包括:a)设计报告(打印版) b)装有源程序、设计报告的光盘一张 c)所有源程序文件及其makefile放在指定的服务器的指定目录下。
8) 不得抄袭,一经发现即给予不及格。
评分标准:
1) 内部命令实现 30分
2) 外部命令的执行 10分
3) 输入输出重定向 20分
4) 设计报告 15分
5) 使用手册 10分
6) 注释及良好的程序设计风格 15分
7) 分数在75分以上者,视选作内容作得情况酌情加分。但分数在75分以下者选作内容不予考虑。
主要参考书目:UNIX环境高级编程
可能用到的系统调用:
open(),close(),read(),write(),creat()
dup()
fork()
execl(),execv(),execle(),execve(),execlp(),execvp()
wait(),waitpid()
chdir()
opendir(),readdir(),rewinddir(),closedir()
rmdir(),mkdir()

论坛徽章:
0
发表于 2010-06-23 15:31 |显示全部楼层
额的神,你们太牛了,你们是学什么的 ?
坐等牛人,解答

论坛徽章:
20
CU大牛徽章
日期:2013-03-13 15:29:072015亚冠之阿尔希拉尔
日期:2015-09-12 09:33:562015年亚冠纪念徽章
日期:2015-09-22 17:12:202015亚冠之本尤德科
日期:2015-10-29 16:18:18神斗士
日期:2015-11-23 13:37:23青铜圣斗士
日期:2015-12-07 10:14:28平安夜徽章
日期:2015-12-26 00:06:3015-16赛季CBA联赛之佛山
日期:2016-01-18 08:59:06shanzhi
日期:2016-06-17 17:59:3115-16赛季CBA联赛之同曦
日期:2016-11-03 14:43:552015七夕节徽章
日期:2015-08-21 11:06:17丑牛
日期:2014-12-30 16:06:17
发表于 2010-06-23 23:40 |显示全部楼层

论坛徽章:
0
发表于 2010-06-24 14:52 |显示全部楼层
把你写的程序放到bin下面
比如你写一个
int main(void)
{
       printf("aaaaaaaa\n");
       return 0;
}
然后编译成名字为比如 print 然后把print放到bin下面
然后你在终端输入print
显示aaaaaaaa
OK

论坛徽章:
1
天蝎座
日期:2013-10-23 21:11:03
发表于 2010-06-25 14:59 |显示全部楼层
APUE2第1章Figure 1.7. Read commands from standard input and execute them
给出了一个简单的框架
我觉得主要工作是解析命令行字符串

BTW:lz学校很有前途啊

论坛徽章:
0
发表于 2010-06-26 15:45 |显示全部楼层
《Linux 编程实践教程》上有你想要的
一路征程一路笑 该用户已被删除
发表于 2010-06-26 15:48 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
发表于 2010-06-26 16:38 |显示全部楼层
孩子,这个不难,只要你想写,肯定能写出来,上学的时候多写一些,以后找工作的时候多要一些。

论坛徽章:
0
发表于 2010-06-26 17:19 |显示全部楼层
APUE看一下什么都懂了

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2010-06-27 19:32 |显示全部楼层
LZ老师给的课题还是很有学习意义的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP