




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第第页操作系统实验指导-图文
《计算机操作系统》
实验指导
苏州科技学院电子与信息工程学院
计算机工程系
二O一四年九月
目录
Linux平台
实验一命令解释程序2实验二进程管理3实验三进程间通信5实验四存储管理14实验五设备管理22实验六软盘I/O32实验七文件系统41
Windows平台
实验一进程同步42实验二内存管理实验44实验三快速文件系统实习46实验四进程之间通信47实验五Windows应用程序与动态链接库49实验六WDM驱动程序开发50
1
实验一命令解释程序
实验名称:命令解释程序实验项目性质:设计性所涉及课程:操作系统计划学时:2承担实验室:计算机实验室实验环境要求:RedhatLinux适用专业:计算机科学与技术一、实验目的1、通过本实验熟悉UNIX/LINUX操作系统及C语言。2、熟悉系统调用的编程方法。二、实验预备内容查阅实验中相关函数调用的用法(可用man命令):gets,strcspn,strncpy,strcmp,system等
三、实验内容利用C语言编写一个微型命令解释程序minishell.c,该程序可接收并解释以下命令:(1)dir列出当前目录(2)copfile1file2拷贝文件(3)erafilename删除文件(4)dispstring显示字符串(5)end结束,退出要求:(1)检查命令的合法性,如果有错误,显示出错信息,等待重新输入;(2)命令前后有空格示为合法命令。
四、示例程序minishell.c
//文件名minishell.cpp
//功能小型SHELL命令解释程序//开发环境
#definetrue1#defineflase0
#include#include#include
voidmain(){charcmdl[80];
?char*scwt[]={\staticintcmdnum=3;//可用的命令数charcmd[80];
2
}
intj,n;
while(true){printf(\gets(cmdl);//取命令行输入}
n=strcspn(cmdl,\//取命令命令部分if(n>0||strlen(cmdl)>0)
{strnexicpy(cmd,cmdl,n);cmd[n]='\\0';for(j=0;j#includepid_tfork(void);
返回值:子进程中为0,父进程中为子进程ID,出错为-1由fork创建的新进程被称为子进程(childprocess)。该函数被调用一次,但返回两次。两次返回的区别是子进程的返回值是0,而父进程的返回值则是新子进程的进程ID。将子进程ID返回给父进程的理由是:因为一个进程的子进程可以多于一个,所以没有一个函数使一个进程可以获得其所有子进程的进程ID。fork使子进程得到返回值0的理由是:一个进程只会有一个父进程,所以子进程总是可以调用getppid以获得其父进程的进程ID(进程ID0总是由交换进程使用,所以一个子进程的进程ID不可能为0)。子进程和父进程继续执行fork之后的指令。子进程是父进程的复制品。例如,子进程获得父进程数据空间、堆和栈的复制品。注意,这是子进程所拥有的拷贝。父、子进程并不共享这些存储空间部分。如果正文段是只读的,则父、子进程共享正文段。2、fork()调用示例
#includemain(){intp1,p2;while((p1=fork())==-1);if(p1=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论