资源简介
《操作系统—精髓与设计原理》一书中myshell编程项目,代码写得很清晰,纠错能力很强大,实现了基本的内部命令:cd、dir、help、echo、environ等,以及实现文件重定向、后台处理等功能。附有实验报告。
代码片段和文件信息
/* 操作系统练习1: myshell.c
姓名: 杨富强
学院:通信工程
学号:01051312
在Ubuntu7.10和cygwin下已经测试通过
*/
#include “myshell.h“
int main (int argc char *argv[])
{
char buf [MAX_BUFFER] pwd [MAX_ARGS]; // line buffer
char shell_path[MAX_ARGS]=“shell=“;
char readme_path[MAX_ARGS]=“readme_path=“;
char newpath[MAX_ARGS*1000];
int len;
strcpy(newpathgetenv(“PATH“));
strcat(newpath“:“);
if(strcmp(argv[0]“./myshell“)&&strcmp(argv[0]“myshell“))
{
len=strlen(argv[0]);
while(len&&argv[0][len]!=‘/‘) len-- ;
argv[0][len]=‘\0‘;
strcpy(pwdargv[0]);
get_fullpath(pwd argv[0]);
printf(“%s\n“pwd);
}
else strcpy(pwd getenv(“PWD“));
strcat(newpathpwd); // strcat(newpathgetenv(“PWD“));
setenv(“PATH“newpath1);// add the current working directory in the “PATH“ environment variable to search for the filename specified.
strcat(shell_pathpwd); // strcat(shell_path getenv(“PWD“));
strcat(shell_path“/myshell“);
putenv( shell_path); //add the working directory of myshell in the environment variables
strcat(readme_path pwd); // strcat(readme_path getenv(“PWD“));//
strcat(readme_path“/readme“);
putenv(readme_path); // add the filepath of the file “readme“ in the environment variables see function my_help( ) !
if(argc>1) // 也许用户直接在终端输入 ./myshell a.bat >c.txt
{
strcpy(buf“myshell “);
int i;
for(i=1;i {
strcat(bufargv[i]);
strcat(buf“ “);
}
Execute(buf);// execute this command, 执行这个批处理命令
}
else // 如果用户在终端输入 ./myshell
{
my_clear( );
fprintf(stderr “Welcome Enter myshell!\nType \“help\“ to see the help information.\n“);
my_shell(stdinNULLNULL);
}
return 0 ;
} // end function “main“
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 188 2008-06-17 12:39 myshell_for_linux\makefile
文件 2118 2008-06-17 12:39 myshell_for_linux\myshell.c
文件 2265 2008-06-17 12:39 myshell_for_linux\myshell.h
文件 11840 2008-06-17 12:39 myshell_for_linux\readme
文件 40643 2008-06-17 12:39 myshell_for_linux\utility.c
文件 371200 2009-04-27 14:29 操作系统实验报告.doc
目录 0 2010-11-02 23:24 myshell_for_linux
----------- --------- ---------- ----- ----
428254 7
- 上一篇:WEBRTC多人视频通话
- 下一篇:ubuntu USB驱动
相关资源
- S3C44b0上移植vxworks操作系统的bsp
- 山东大学操作系统实验代码
- 分时操作系统在单片机中的实现
- rocky凝思操作系统ISO镜像刻录到U盘里
- 内存管理选择题.txt
- 苏州大学操作系统实验报告四可变分
- 操作系统-吃水果问题
- 山东大学操作系统2017-2018复习提纲
- 华中科技大学操作系统实验
- 北京科技大学操作系统实验
- 信号量同步实验报告哲学家进餐问题
- 大连理工大学操作系统上机进程调度
- 具体源代码myshell.c
- 模拟unix系统成组链接法
- IBMAIX操作系统基础共10集.txt
- 操作系统模拟实验:批处理系统的作
- 《计算机操作系统教程第三版》课后
- 操作系统课程设计-论文,感想,程序
- 操作系统磁盘调度先来先服务、最短
- 中科院杨立祥老师操作系统课程思考
- 操作系统基础.docx
- 大学操作系统期末复习资料
- 操作系统实验四、时钟中断处理程序
- 操作系统虚拟分页存储管理,LRU页面
- 模拟shell编程
- 重庆理工大学操作系统试题
- 东华大学 操作系统实验 存储管理 含
- 操作系统实验三源代码加实验报告
- 计算机操作系统课后答案.doc
- 操作系统之PV金典第二版
评论
共有 条评论